使用include语句在谷歌应用引擎上的django模板

时间:2013-07-16 15:45:04

标签: google-app-engine

此问题was asked之前但似乎没有得到回答。所以我再问一遍。

在使用python的Google App Engine上,我的应用程序根目录下有两个目录:/templates/static/files。假设base.html位于/templates,并且它包含以下模板语句:

{% include "privacy.html" %}

如果文件privacy.html也在目录/templates中,则上述语句将起作用。但是,如果将privacy.html移动到目录/static/files,则以下语句将不起作用(不包括任何内容):

{% include "/static/files/privacy.html" %}

为什么以及如何解决问题?感谢。

1 个答案:

答案 0 :(得分:2)

我假设您在app.yaml中为/static/files文件夹使用静态文件处理程序。在这种情况下,请阅读:

https://developers.google.com/appengine/docs/python/config/appconfig#Static_File_Handlers

基本上,静态文件在部署时会放在单独的文件系统上,并且您的应用无法访问。

以下是一些解决方法:

  • 不要将模板放在静态文件文件夹中。由于您不直接向最终用户提供模板,因此通常甚至没有意义。
  • 如有必要,复制文件夹,以便只有一个副本具有静态处理程序。
  • 使用符号链接“复制”文件夹。