0

我似乎在任何地方都找不到这个。

我拥有的是一个只提供 html 页面的 appengine 项目。但它仅在文件名“完全”正确时才能正确加载文件。

mywebsite.com/lastproject/ 加载完美

mywebsite.com/lastproject 根本不加载

我希望网站在尾随 / 被遗漏时正确加载。我错过了什么???

这是我的 app.yaml

application: websitewithsubfolder
version: 1
runtime: python
api_version: 1

handlers:

- url: (.*)/
  static_files: static\1/index.html
  upload: static/index.html

- url: /
  static_dir: static
4

2 回答 2

0

您在 yaml 文件中的第一个映射告诉 AppEngine“每个以 / 结尾的 url 都应该映射到 ...”。你没有任何映射到不以 / 结尾的东西。

这会将所有内容映射到名为 static/html 的文件夹(未经测试,让我知道它是否有效)

- url: /.*
  static_dir: static/html
  mime_type: text/html
于 2012-06-03T15:10:55.190 回答
0

@Shay 表示该行应该是:

- url: (.*)

这是一个处理所有 URL 请求的路由,您不会收到任何 404 错误,并且所有请求都由静态index.html 页面处理。您的第二条路线将永远不会被处理,因为它更具体并且在您的通用路线之后。

您想要在捕获所有路线之上的更具体的路线。

application: websitewithsubfolder
version: 1
runtime: python
api_version: 1

handlers:
- url: /static
  static_dir: static

- url: /favicon.ico
  static_files: static/images/favicon.ico
  upload: static/images/favicon.ico
  mime_type: image/vnd.microsoft.icon

- url: /robots.txt
  static_files: robots.txt
  upload: robots.txt

- url: /(.*\.(gif|png|jpg))
  static_files: \1
  upload: (.*\.(gif|png|jpg))

- url: /static/css
  static_dir: static/css

- url: /static/js
  static_dir: static/js

- url: (.*)
  static_files: static/index.html
  upload: static/index.html

上面的 app.yaml 文件更符合你想要的。

我建议您阅读更详细的app.yaml文档。

于 2012-06-03T15:28:03.323 回答