它适用于localhost,但在生产中它显示此错误:
TemplateDoesNotExist at /tcapp/tcpage
应用程序/ urls.py
from django.conf.urls import url
from .import views
urlpatterns = [
url(r'^tcapp/tcpage', views.tcpage, name='tcpage'),
url(r'^tcapp/tcappretrive', views.tcappretrive, name='tcappretrive'),
url(r'^tcapp/home',views.tcpage,name='tcpage'),
url(r'^tcapp/work',views.work,name='work'),
url(r'^tcapp/s&c',views.support,name='support'),
]
模板:
可能导致此错误消息的原因是什么?
答案 0 :(得分:0)
这可能是这个原因 -
您的设置是否包含正确的模板目录? 您可能需要在settings.py -
中检查TEMPLATE_DIR设置 TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
'/home/html/example.com',
'/home/html/default',
],
},
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [
'/home/html/jinja2',
],
},
]
了解更多结果this
此外,您可能需要使用os.path函数添加模板目录。
如果这可以解决您的问题,请告诉我。
答案 1 :(得分:0)
模板在settings.py中设置
remove()
第一个1)路径
PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
'/var/www/rsa/html', #1) this sets a static path
os.path.join( PROJECT_PATH, 'templates').replace('\\','/'), #2) this sets a dynamic path
],
'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',
],
},
},
]
只是说所有模板都可以在这个绝对路径上使用。不是真的推荐。我更喜欢根据应用设置模板的第二个选项。
PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))
只是意味着您使用
创建的任何应用程序os.path.join( PROJECT_PATH, 'templates').replace('\\','/'),
在该app文件夹中,您可以创建一个名为" templates"的文件夹。并在那里放置你想要的任何模板。
扩展静态文件夹中的模板,&在动态文件夹中有特定于应用程序的模板。
在一个名为countries的应用中 你可以在
中有一个模板/countries/templates/display.html
你可以拥有
./manage startapp app_name
希望有所帮助。
P.S。搜索模板按顺序列出,首先是静态,然后查看动态位置。 如果在模板中找到app.html,那么django将停在那里,不会再看了。