Appengine模块:使用dispatch.yaml无法正常工作的路由

cha*_*ram 2 python google-app-engine

我正在使用模块,但我无法按照此处的说明开始工作路线https://developers.google.com/appengine/docs/python/modules/routing

更新:

appcfg.py update dispatch.yaml app.yaml comunapp_site.yaml

appcfg.py update_dispatch
Run Code Online (Sandbox Code Playgroud)

端点api按预期工作,但我不希望这个网站工作

https://skilled-cargo-111.appspot.com/comunapp/
Run Code Online (Sandbox Code Playgroud)

但只有这个有效

https://comunapp-dot-skilled-cargo-111.appspot.com/
Run Code Online (Sandbox Code Playgroud)

这是我的yaml文件:

的app.yaml

application: skilled-cargo-111
module: default
version: 1
runtime: python27
api_version: 1
threadsafe: yes    

automatic_scaling:
  min_idle_instances: 1
  max_pending_latency: 3s    

handlers:
- url: /_ah/spi/.*
  script: mobile_api.application   

libraries:
- name: endpoints
  version: 1.0
Run Code Online (Sandbox Code Playgroud)

comunapp_site.yaml

application: skilled-cargo-111
module: comunapp
version: 1
runtime: python27
api_version: 1
threadsafe: yes

automatic_scaling:
  min_idle_instances: 1
  max_pending_latency: 10s

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: /css
  static_dir: css

- url: /bootstrap
  static_dir: bootstrap

- url: /images
  static_dir: images

- url: /javascript
  static_dir: javascript


#- url: /login.*
#  script: "main.py"
#  secure: always

- url: /.*
  script: comunapp_site.app
  login: optional
  secure: always

libraries:
- name: webapp2
  version: "2.5.2"
- name: jinja2
  version: latest
Run Code Online (Sandbox Code Playgroud)

dispatch.yaml

application: skilled-cargo-111

dispatch:
  - url: "*/favicon.ico"
    module: default

  - url: "*/comunapp/*"
    module: comunapp

  - url: "*/api/*"
    module: default
Run Code Online (Sandbox Code Playgroud)

Mar*_*rio 7

发生的事情是您的调度文件说要将任何来到hostname/comunapp/*的请求路由到您的comunapp处理程序,但是到达该处理程序的URL是skill-cargo-111.appspot.com/comunapp/类型的URL,而您可能只为/ path 设置了处理程序,就像使用默认模块一样.

如果您使用的是Python,请尝试将代码更新为:

comunapp = webapp2.WSGIApplication([
    ('/comunapp/*', ComunApp),
], debug=True)
Run Code Online (Sandbox Code Playgroud)

它应该做的伎俩.

同样对于"api"路径,您应该在默认模块代码中添加"/ api /"处理程序.

您可以通过检查开发人员控制台中comunapp模块的日志来检查调度文件是否正常工作.如果你看到/ comunapp/*URL的请求但得到404错误就是我之前提到的.如果您在comunapp模块日志中看不到任何这些URL,则调度文件是解决问题的关键.