gpt4 book ai didi

python - 使用dispatch.yaml在appengine模块中进行静态目录管理

转载 作者:行者123 更新时间:2023-11-30 23:32:15 25 4
gpt4 key购买 nike

我目前正在使用模块,这是 appengine 中用于子域路由的一个相对较新的概念。一切正常,除了样式表和图像等静态资源似乎只在“默认”模块加载,而不是在我正在使用的“管理”模块加载。

默认模块的yaml文件app.yaml是:-

    application: check4se
version: v1
runtime: python27
api_version: 1
threadsafe: true

automatic_scaling:
max_idle_instances: 20

handlers:


- url: /stylesheets
static_dir: stylesheets
expiration: "1s"

- url: /images
static_dir: images
expiration: "1s"

- url: /js
static_dir: js


- url: .*
script: Main2.app

libraries:
- name: jinja2
version: latest

我的模块管理的 admin.yaml 如下:-

     application: check4se
module: admin
version: v1
runtime: python27
api_version: 1
threadsafe: false

automatic_scaling:
min_idle_instances: 2

handlers:

- url: .*
script: admin.app


- url: /_ah/login_required
script: do_openid_login.py

我正在使用dispatch.yaml将所有静态资源路由到我的默认模块:-

      application: check4se

dispatch:


- url: "admin.check4se.appspot.com/*"
module: admin

- url: "*/images"
module: default

- url: "*/stylesheets"
module: default

- url: "*/js"
module: default

问题是什么以及解决方法。

最佳答案

我认为 admin.yaml 中的 .* 处理程序与/_ah/login_required 路径匹配,因此/_ah/login_required 路径永远不会匹配,也永远不会调用 do_openid_login.py。

相反,请将/_ah/login_required 处理程序放在 .* 处理程序之前。

 application: check4se
module: admin
version: v1
runtime: python27
api_version: 1
threadsafe: false

automatic_scaling:
min_idle_instances: 2

handlers:

- url: /_ah/login_required
script: do_openid_login.py

- url: .*
script: admin.app

此外,您可能在使用dispatch.yaml时遇到类似的问题

您可能希望将静态资源路径放在第一位,否则管理域上的任何内容都将转到管理资源,而不是默认资源。

  application: check4se

dispatch:

- url: "*/images"
module: default

- url: "*/stylesheets"
module: default

- url: "*/js"
module: default

- url: "admin.check4se.appspot.com/*"
module: admin

关于python - 使用dispatch.yaml在appengine模块中进行静态目录管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19476264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com