美好的一天!
遇到这样的问题。在生产服务器上加载站点时,Linux Django 开始发誓缺少模板:TemplateDoesNotExist at /home main/index.html。
web/site.ru/mainApp/views.py in home return render(request, 'main/index.html', {'form':form}, locals())
尽管一切都在本地服务器上运行。我怀疑这是由于 Windows 和 Linux 上的相对路径不同(该项目是在本地 Windows 机器上开发的)
设置.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join('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',
],
},
},
]
TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'templates'),)
视图.py
def home(request):
form = RequestForm(request.POST or None)
if request.method == 'POST' and form.is_valid():
new_form = form.save()
messages.success(request, 'Ваш запрос успешно отправлен')
return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
return render(request, 'main/index.html', {'form':form}, locals())
通过将 BASE_DIR 添加到 settings.py 的顶部和 DIRS 来解决问题:
...