Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django在骗我吗?!当文件确实存在时,render_to_响应函数返回TemplateDoesNotExist_Django_Templates_Mod Wsgi - Fatal编程技术网

Django在骗我吗?!当文件确实存在时,render_to_响应函数返回TemplateDoesNotExist

Django在骗我吗?!当文件确实存在时,render_to_响应函数返回TemplateDoesNotExist,django,templates,mod-wsgi,Django,Templates,Mod Wsgi,嗯。我读过很多关于这种情况的报道,当提问者正确地修改了他们的模板设置时,这些问题总能得到解决。这些建议对我都不起作用。奇怪的是,在使用Django web服务器时加载模板,但在使用mod_wsgi时出错。我认为django可能抛出了一个不正确的异常,因为在给定我的设置的情况下,TemplateDoesNotExist错误根本无法应用 我的代码: my app/views/view.py(是的,我的视图位于子文件夹中) 这是位于根目录(标准位置)的my settings.py 最后,我的视图位于/

嗯。我读过很多关于这种情况的报道,当提问者正确地修改了他们的模板设置时,这些问题总能得到解决。这些建议对我都不起作用。奇怪的是,在使用Django web服务器时加载模板,但在使用mod_wsgi时出错。我认为django可能抛出了一个不正确的异常,因为在给定我的设置的情况下,TemplateDoesNotExist错误根本无法应用

我的代码:

my app/views/view.py(是的,我的视图位于子文件夹中)

这是位于根目录(标准位置)的my settings.py

最后,我的视图位于/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证明文件确实存在

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 

谢谢你的任何见解,因为我感到困惑和卡住了

您应该检查运行wsgi进程的用户是否可以读取模板文件夹。我想这是一个简单的权限问题。

您没有包含正确的url。它应该是“pages/home/modules/navigation/navigation.html”

这应该通过替换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',
        ],
    },
},
]

你好谢谢你的建议。我的权限是:drwxr-xr-x 9 foo foo 4096 2011-06-05 12:57模板。我将其更改为每个人都可以阅读以进行调试。仍然不起作用。模板文件夹本身并不一定能让wsgi进程读取它。如果例如/home/foobar被限制为只能由foobar读取,那么这仍然不起作用。@mu是的,我做了。为了进行测试,我递归地对整个项目目录和模板目录进行了chmod755。任何用户都可以读取和执行所有文件。谢谢你的建议。听起来还是有权限的,你有没有可能启用SELinux?我有。但是,让我感兴趣的是,它在使用django Web服务器时确实有效。mod_wsgi给我带来了麻烦。我将发布该文件中的内容,因为这是我第一次使用mod_wsgi。另外,请详细说明SElinux的事情。你认为会有什么问题?另外,您认为我上面的代码有什么问题吗?谢谢,你好。谢谢,但这并不能解决问题。我已经尝试用“hello world”替换模板的内容。我仍然收到相同的错误,告诉我:/home/foobar/templates/pages/home/base\u home.html(文件不存在)。谢谢你!
  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 
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',
        ],
    },
},
]