0

这看起来可能很简单,但我不能将我的 .html 文件移动到他们自己的目录中,否则网站会停止尖叫。如果留在根文件夹中,它们将工作文件。

这是我试图做的

<root>
|_ app.yaml
|_ main.py
|_ ...etc
|_<layout>
  |_ base.html
  |_ home.html
  |_ ...etc

我在 app.yaml 文件中添加了以下内容:

- url: /layout
  static_dir: layout

我认为这样做可以,因为没有其他东西使用该目录,我假设 HANDLERS 中的顺序无关紧要。这是我完整的处理程序部分,以防有人发现我遗漏了一些明显的东西(我承认对此没有很好的理解,尽管在这里浏览了与静态文件和目录相关的文档和其他问题):

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

- url: /layout
  static_dir: layout

- url: /stylesheets
  static_dir: stylesheets

- url: .*
  script: main.app

我试过混合处理程序的顺序,但错误总是一样的:

IOError: [Errno 13] file not accessible: 'E:\\Users\\Steve\\Documents\\test_gae\\test\\layout\\home.html'

任何建议将不胜感激,干杯

回答,根据 voscausa 的回答:这些 HTML 文件是模板,而不是静态页面。删除“布局”的静态处理程序完全解决了这个问题。

4

1 回答 1

2

如果您使用 Jinja2,则不需要将 /layout 文件夹放在 app.yaml 中,因为您不提供静态模板,而是使用 jinja 渲染模板并编写响应 HTML。

所以问题一定出在你的代码中。查看模板路径。

处理程序的顺序很重要。url 模式从上到下匹配。这表示

- url: /.*
  script: main.app

永远是最后一个处理程序!!

于 2012-11-29T01:27:12.117 回答