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

时间:2014-09-22 15:51:15

标签: 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

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

https://skilled-cargo-111.appspot.com/comunapp/

但只有这个有效

https://comunapp-dot-skilled-cargo-111.appspot.com/

这是我的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

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

dispatch.yaml

application: skilled-cargo-111

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

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

  - url: "*/api/*"
    module: default

1 个答案:

答案 0 :(得分:7)

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

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

comunapp = webapp2.WSGIApplication([
    ('/comunapp/*', ComunApp),
], debug=True)

应该这样做。

也适用于" api"路径,你应该添加" / api /"默认模块代码中的处理程序。

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