
Как говорится в заголовке, сервер настроен на распознавание подкаталогов, но по какой-то причине они не распознаются при загрузке веб-страницы. Есть ли способ отладить то, что происходит?
threadsafe: true
api_version: 1
handlers:
- url: /(.*\.html)
static_files: html/\1
upload: html/(.*\.html)
- url: /robots.txt
static_files: html/robot.txt
upload: html/robots.txt
- url: /pako
static_dir: third_party/pako
- url: /images
static_dir: images
- url: /js
static_dir: js
- url: /css
static_dir: css
- url: /compute/.*
script: apprtc.app
login: admin
- url: /probe.*
script: probers.app
secure: always
- url: /.*
script: apprtc.app
secure: always
libraries:
- name: jinja2
version: latest
- name: ssl
version: latest
- name: pycrypto
version: latest
env_variables:
BYPASS_JOIN_CONFIRMATION: false
# Only change these while developing, do not commit to source!
# Use appcfg.py --env_variable=ICE_SERVER_API_KEY:KEY \
# in order to replace variables when deploying.
ICE_SERVER_API_KEY: ""
# Comma-separated list of ICE urls to return when no ice server
# is specified.
ICE_SERVER_URLS: ""
# A message that is always displayed on the app page.
# This is useful for cases like indicating to the user that this
# is a demo deployment of the app.
HEADER_MESSAGE: ""
Вот ответ сервера
INFO 2021-08-12 05:20:35,496 admin_server.py:150] Starting admin server at: http://localhost:8000
INFO 2021-08-12 05:20:37,540 instance.py:294] Instance PID: 16382
INFO 2021-08-12 05:20:43,429 apprtc.py:95] Applying media constraints: {'video': {'optional': [{'minWidth': '1280'}, {'minHeight': '720'}], 'mandatory': {}}, 'audio': True}
WARNING 2021-08-12 05:20:43,436 apprtc.py:139] Invalid or no value returned from memcache, using fallback: null
INFO 2021-08-12 05:20:43,452 module.py:861] default: "GET / HTTP/1.1" 200 8965
INFO 2021-08-12 05:20:43,520 module.py:861] default: "GET /css/main.css HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,575 module.py:861] default: "GET /js/util.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,577 module.py:861] default: "GET /js/adapter.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,629 module.py:861] default: "GET /js/constants.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,631 module.py:861] default: "GET /js/infobox.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,635 module.py:861] default: "GET /js/analytics.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,639 module.py:861] default: "GET /js/sdputils.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,643 module.py:861] default: "GET /js/call.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,646 module.py:861] default: "GET /js/appcontroller.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,698 module.py:861] default: "GET /css/main.css HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,709 module.py:861] default: "GET /js/peerconnectionclient.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,699 module.py:861] default: "GET /js/adapter.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,710 module.py:861] default: "GET /js/roomselection.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,711 module.py:861] default: "GET /js/util.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,712 module.py:861] default: "GET /js/signalingchannel.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,751 module.py:861] default: "GET /js/stats.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,764 module.py:861] default: "GET /js/storage.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,768 module.py:861] default: "GET /js/sdputils.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,773 module.py:861] default: "GET /js/constants.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,776 module.py:861] default: "GET /js/infobox.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,777 module.py:861] default: "GET /js/analytics.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,806 module.py:861] default: "GET /js/appcontroller.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,825 module.py:861] default: "GET /js/call.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,836 module.py:861] default: "GET /js/peerconnectionclient.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,840 module.py:861] default: "GET /js/roomselection.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,841 module.py:861] default: "GET /js/stats.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,842 module.py:861] default: "GET /js/signalingchannel.js HTTP/1.1" 304 -
INFO 2021-08-12 05:20:43,858 module.py:861] default: "GET /js/storage.js HTTP/1.1" 304 -
Сервер, который я настраиваю, можно найтиздесь. Я пытаюсь создать сервер (который уже написан, просто не настроен), который принимает видеопотоки, генерируемые моими очками Google Glass, и позволяет людям присоединяться к комнате, где они могут видеть мой видеопоток. Затем мои очки Google Glass могут видеть трансляции с их веб-камер на моем дисплее. Платформа, на которой я настроил сервер, — Debian 10. Инструменты — Google App Engine SDK для Python, Node.js и Grunt. Часть веб-сайта также написана на Go.
Сервер запускается путем запуска
./collidermain -tls=true -port=8089 -room-server=http://example.com
А также бег
python ../google-cloud-sdk/bin/dev_appserver.py --host example.com ./out/app_engine
Причина, по которой я прошу о помощи, заключается в том, что каталоги, указанные в файле app.yaml, который я показываю выше, правильно размещены относительно используемого файла индекса. Так что не знаю, почему он их не извлекает. Веб-сайт является копиейэтот сайт
Если вам нужны более подробные разъяснения, пожалуйста, дайте мне знать, и я постараюсь!
Итак, похоже, что веб-сервер, на котором это должно работать, не предназначен для работы по https. И сам сервер не будет полноценно функционировать без https-соединения.
решение1
Программное обеспечение, которое я настроил, предназначено строго для среды разработки, которая должна работать на локальном хосте. Чтобы настроить производственную среду, мне нужно использовать веб-сервисы Google. Вот почему веб-сайт не работает.
Для тех, кто столкнется с этим в будущем:
- Вам нужен SSL, чтобы иметь возможность посещать комнаты в программном обеспечении.
- SSL не поддерживается, если вы не используете веб-сервис Google.
- Вы можете настроить веб-сервис на использование вашего домена, чтобы иметь возможность настроить поддомен или просто использовать свой основной домен для приложения.