app.yaml, cron.yaml 등을 사용하여 서버를 설정했지만 디렉터리가 인식되지 않습니다.

app.yaml, cron.yaml 등을 사용하여 서버를 설정했지만 디렉터리가 인식되지 않습니다.

제목에서 알 수 있듯이 서버는 하위 디렉토리를 인식하도록 구성되었지만 어떤 이유로든 웹 페이지를 로드할 때 하위 디렉토리가 인식되지 않습니다. 무슨 일이 일어나고 있는지 디버깅할 수 있는 방법이 있나요?

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입니다. 도구는 Python, Node.js 및 Grunt용 Google App Engine SDK입니다. 웹사이트의 일부도 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

내가 설정한 소프트웨어는 엄격하게 localhost에서 실행되는 개발 환경용입니다. 프로덕션 환경을 설정하려면 Google 웹 서비스를 사용해야 합니다. 그래서 웹사이트가 작동하지 않는 거죠.

앞으로 이 문제를 겪는 사람을 위해:

  1. 소프트웨어에서 회의실을 방문하려면 SSL이 필요합니다.
  2. Google 웹 서비스를 사용하지 않으면 SSL이 지원되지 않습니다.
  3. 도메인을 사용하도록 웹 서비스를 구성할 수 있으므로 하위 도메인을 설정하거나 앱의 기본 도메인을 바로 사용할 수 있습니다.

관련 정보