AppEngine:从静态目录(不只是'/')加载模板

时间:2011-06-29 14:33:45

标签: django google-app-engine templates

我正在尝试使template.render()(import was:from google.appengine.ext.webapp import template)使用位于应用程序根目录以外的目录中的模板。

我有一个名为static的目录,我想保留我的模板。或者可能,我稍后会将其更改为static/templates,但这并不重要。

问题? TemplateDoesNotExist: index.html,这是一个可悲的例外。

此:

path = os.path.join(os.path.dirname(__file__), 'index.html')
logging.debug(path)
self.response.out.write(template.render(path, template_values))

..有效,但是这个:

path = os.path.join(os.path.dirname(__file__), 'static/index.html')
logging.debug(path)
self.response.out.write(template.render(path, template_values))

..没有。

/static已添加到app.yaml,但无关紧要。

感谢您的任何建议。

1 个答案:

答案 0 :(得分:3)

/static添加到app.yaml 导致/static中的文件被区别对待。

请参阅http://code.google.com/appengine/docs/python/config/appconfig.html#Static_File_Handlers并注意:

  

如果您有需要由应用程序代码读取的数据文件,则数据文件必须是应用程序文件,并且不能与静态文件模式匹配。

模板是数据文件。