错误:模板不存在
我在一个项目里有两个应用,第一个应用是主应用,里面有主页和关于页面,第二个应用是联系页面。
这是我在联系应用里的 contact/urls.py 文件:
from .views import ContactFormView
urlpatterns = patterns('',
# URL pattern for the ContactView
url(regex=r'^contact/$', view=ContactFormView.as_view(), name='contact'),
)
这是主应用的 pages/urls.py 文件:
from django.conf.urls import patterns, url
from .views import AboutPageView, HomePageView
urlpatterns = patterns('',
url(regex=r'^$', view=HomePageView.as_view(), name='home'),
url(regex=r'^about/$', view=AboutPageView.as_view(), name='about'),
)
在主应用的 pages/views.py 文件里:
from vanilla import TemplateView
class HomePageView(TemplateView):
template_name = "pages/home.jade"
class AboutPageView(TemplateView):
template_name = "pages/about.jade"
class ContactFormView(TemplateView):
template_name = "contact/email_form.jade"
我遇到了一个错误,提示 django.template.base.TemplateDoesNotExist
错误信息是:TemplateDoesNotExist: /contact/email_form.jade
我不太明白为什么会这样,设置文件看起来没问题,我可以正常打开主页,菜单里也有联系页面的选项,但当我点击联系时就出现了上面的错误。希望能得到一些帮助,谢谢!
2 个回答
0
确保你在 app.yaml
文件中没有把模板所在的任何父目录标记为 static
。
App Engine 会把静态文件和应用程序文件分开存储和提供服务。静态文件在应用程序的文件系统中是无法访问的。
如果你发现有这样的情况,可以找一个单独的目录来放静态文件,或者你也可以选择在静态文件的配置块中使用
application_readable: True
,这样文件系统就可以读取这些文件了。
1
你应该把 email_form.jade 文件放在 /templates/contact 这个文件夹里。或者把它放在 /templates/pages 里,然后把那一行改成 template_name = "pages/email_form.jade"。