Django:无法让主页正确显示 TemplateDoesNotExist at /
Posted
技术标签:
【中文标题】Django:无法让主页正确显示 TemplateDoesNotExist at /【英文标题】:Django: Can't get homepage to display correctly TemplateDoesNotExist at / 【发布时间】:2012-12-22 22:50:00 【问题描述】:我正在开发一个新的 Django 项目,并且很难让 index.html 页面正确显示。有关如何更改以使其正确显示的任何建议?
我收到了错误
TemplateDoesNotExist at /
index.html
我对每个文件的设置如下。
我的项目名称/我的项目名称/settings.py
import os
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'templates/static')
TEMPLATE_DIRS = (
PROJECT_ROOT + '../templates'
)
我的项目名称/我的项目名称/urls.py
from django.conf.urls import patterns, include, url
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^', 'apps.views.index'),
url(r'^admin/', include(admin.site.urls)),
)
我的项目名称/apps/views.py from django.shortcuts import render_to_response
def index(request):
return render_to_response('index.html', locals())
我也是 Django 新手,所以不要讨厌! :) 我很乐意承认我是个菜鸟……
【问题讨论】:
【参考方案1】:设置您的模板目录:
PROJECT_DIR = os.path.dirname(__file__)
TEMPLATE_DIRS = (
os.path.join(PROJECT_DIR, 'templates'),
)
您的文件夹结构应类似于:
project_name/
project_name/
settings.py
templates/
index.html
文件夹结构尤为重要!
如果你还没有定义你的模板加载器:
TEMPLATE_LOADERS = (
('django.template.loaders.cached.Loader', (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)),
)
我已经用cached.Loader
包装了标准加载器,有趣的是它只是缓存了预编译的模板。
另外,当我在这里时,修复你的根 URL:
urlpatterns = patterns('',
url(r'^$', 'apps.views.index'),
注意额外的 $
终止正则表达式的末尾,否则第一个 URL 将匹配每个 URL,其他任何一个都没有机会匹配。
【讨论】:
【参考方案2】:试试这个..
TEMPLATE_DIRS = (
PROJECT_ROOT + '../templates/'/
)
【讨论】:
以上是关于Django:无法让主页正确显示 TemplateDoesNotExist at /的主要内容,如果未能解决你的问题,请参考以下文章