行。我已经阅读了许多关于这种情况的其他报道,当问题提示者正确修改了他们的TEMPLATE_DIRS设置时,它们总是得到解决。这些建议都没有对我有用。奇怪的是,模板在使用Django Web服务器时加载,但在使用mod_wsgi时出错。我认为django可能会抛出一个不正确的异常,因为根据我的设置,TemplateDoesNotExist错误根本无法应用。
我的代码:
我的app / views / view.py(是的,我在子文件夹中有我的观点)
8 def index(request):
9 return render_to_response('pages/home/base_home.html')
这是我的settings.py位于根(标准位置)
106 TEMPLATE_DIRS = (
107 # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
108 # Always use forward slashes, even on Windows.
109 # Don't forget to use absolute paths, not relative paths.
110 "/home/foobar/templates",
111 )
最后,我的观点位于/ home / foobar / templates / pages / home /
1 {% extends 'base.html' %}
2
3 {% block navigation %}
4 {% include 'modules/navigation/navigation.html' %}
5 {% endblock %}
6
7 {% block slideshow %}
8 {% include 'modules/slideshow/slideshow.html' %}
9 {% endblock %}
此外,这是一个证明该文件存在的ls -l </ p>
foo@bar:~$ ls -l templates/pages/home/
total 12
-rwxr-xr-x 1 foo foo 205 2011-06-05 12:37 base_home.html
foo@bar:~$
以下是Django给我的尸检报告:
Template-loader postmortem
Django tried loading these templates, in this order:
Using loader django.template.loaders.filesystem.Loader:
/home/foobar/templates/pages/home/base_home.html (File does not exist)
Using loader django.template.loaders.app_directories.Loader:
/usr/local/lib/python2.6/dist-packages/django/contrib/admin/templates/pages/home/base_home.html (File does not exist)
修改的
这是我的wsgi文件
3 import os
4 import sys
5
6 path = '/media/PENDRIVE/Projects/'
7 if path not in sys.path:
8 sys.path.append(path)
9
10 os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
11
12 import django.core.handlers.wsgi
13 application = django.core.handlers.wsgi.WSGIHandler()
14
感谢您的任何见解,因为我感到困惑和困惑!
答案 0 :(得分:0)
您应该检查wsgi进程运行的用户是否可以读取模板文件夹。我想这是一个简单的权限问题。
答案 1 :(得分:0)
您没有包含正确的网址。它应该是“pages / home / modules / navigation / navigation.html”
答案 2 :(得分:0)
这应该通过在settings.py
中替换BASE_DIR的完整路径来解决TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['/var/www/assistance/templates','templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]