Django托管下的模板不存在

2 投票
2 回答
1992 浏览
提问于 2025-04-16 08:46

在本地环境中,我的代码在 http://127.0.0.1:8000/twitter/ 上运行得很好,

但是在Django托管的环境中: http://zjm1126.alwaysdata.net/twitter/,却出现了错误:

TemplateDoesNotExist at /twitter/

home.html

home.html 文件在

mysite:
   twitter
       templates 
            home.html

而我在 settings.py 中设置了这个

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
)

还有

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin',
    'django.contrib.comments',

    'twitter',
)

那我该怎么办呢,

谢谢

2 个回答

0

试着在settings.py文件中添加这个内容

TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(__file__), 'templates').replace('\\', '/'),
)

这些代码的意思是让Django去找名字叫“templates”的文件夹里的模板。虽然书里的作者说,这个是默认的行为,不需要写这段代码。

2

检查一下你的 home.html 文件里有没有缺失的模板。

比如说,如果你的 home.html 里有一行 {% include "header.html" %},但是在模板文件夹里找不到 header.html,Django 还是会报错 TemplateDoesNotExist home.html。虽然实际上缺失的模板不是 home.html,而是它里面引用的那个模板。

撰写回答