App Engine 中的模板目录是如何设置的?
Posted
技术标签:
【中文标题】App Engine 中的模板目录是如何设置的?【英文标题】:How is the template directory set in App Engine? 【发布时间】:2011-08-09 02:39:12 【问题描述】:我目前将我的模板保存在/projectdir/static/html/
。我已经开始拥有足够的它们,所以我创建了一个子目录:/projectdir/static/html/tag_request/
。如果我想在/tag_request/
中有一个模板继承自/html/
中的一个模板,我该怎么做?
我读过 django % extends base.html %
应该写成相对于/projectdir/templates/
或TEMPLATE_DIRS
指向的任何地方。如何在 appengine 中设置TEMPLATE_DIRS
(或者我必须将我的模板放入/projectdir/templates/
)?
谢谢!
【问题讨论】:
您不应该将程序数据(例如,模板)存储在静态目录中。如果您在 app.yaml 中将其标记为静态,则上传后将无法从您的代码中访问它。 谢谢。所以最好的解决方案是将我的模板移动到'/projectdir/templates/'并相应地调整我的代码(因为它不应该是静态的)?顺便说一句,“可从您的代码访问”是什么意思?该应用程序部署正常。当我将模板放入静态时,我会失去什么? 我刚刚开始实施我上次评论中提到的更改,我注意到我从未在我的 app.yaml 中引用 /html/。它只能通过 main.py 访问。这就是我到目前为止没有任何问题的原因吗? 只有在 app.yaml 中将/static
列为 static_dir
时才会出现问题,这似乎很可能是给定的名称。静态文件由前端直接提供,无需您的应用参与,因此无法通过代码访问。
啊。我的 app.yaml 只列出了 static 的子目录(例如static/css
、static/js
)。
【参考方案1】:
这似乎取决于您使用的 Django 版本。
如果您使用的是 0.96,那么就可以了:
% extends ../base.html %
如果您使用的是 1.2,那么理论上您需要创建一个 settings.py 将 TEMPLATE_DIRS
设置为 /projectdir/static/html/
,然后使用:
% extends base.html %
但是我发现了一些问题 - 我的解决方案如下所述:
App engine default Django version change
【讨论】:
谢谢。直到星期四我才能回到这个话题。但我会回来的。以上是关于App Engine 中的模板目录是如何设置的?的主要内容,如果未能解决你的问题,请参考以下文章
Google App Engine 中的 Django 自定义模板标签
Python - Google App Engine - Django 模板中的方法
覆盖部署到 Google App Engine 的 Django 应用中的模板
使用 Google App Engine(Webapp)访问 Django 模板中的会话变量 - Python