У меня есть структура проекта, как этотШаблоны правильно отображаются на сервере развертывания, но ошибка TemplateDoesNotExist на runserver
mainproject
├── manage.py
├── mainproject
│ ├── settings.py
│ ├── templates
│ │ └── mainproject
│ │ └── index.html
│ ├── urls.py
│ ├── views.py
│ └── wsgi.py
└── app
├── admin.py
├── apps.py
├── forms.py
├── models.py
├── templates
│ └── app
│ ├── index.html
│ └── abc.html
├── urls.py
└── views.py
Теперь в моем settings.py У меня есть
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['mainproject/templates', 'app/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',
],
},
},
]
Когда я использую это на основной домен на моем сервере развертывания (развернутый с использованием nginx и uwsgi), он работает хорошо.
Я могу получить доступ к индексу MainProject по адресу domain.com
и индекс приложения на domain.com/app
Но при использовании runserver
только domain.com:8000/app
работы и domain.com:8000
TemplateDoesNotExist at /
дает ошибку.
Почему так и как это можно исправить?
Шаблон загрузчика посмертных:
Using engine django:
django.template.loaders.filesystem.Loader: /home/mohit/mainproject/templates/mainproject/index.html (Source does not exist)
django.template.loaders.filesystem.Loader: /home/mohit/app/templates/mainproject/index.html (Source does not exist)
django.template.loaders.app_directories.Loader: /home/mohit/Env/mainproject/lib/python2.7/site-packages/django/contrib/admin/templates/mainproject/index.html (Source does not exist)
django.template.loaders.app_directories.Loader: /home/mohit/Env/mainproject/lib/python2.7/site-packages/django/contrib/auth/templates/mainproject/index.html (Source does not exist)
django.template.loaders.app_directories.Loader: /home/mohit/mainproject/app/templates/mainproject/index.html (Source does not exist)
Если изменить DIRS
строку в TEMPLATES
в settings.py и сделать его
'DIRS': ['mainproject/mainproject/templates', 'app/templates'],
Затем он работает на runserver и не работает на сервере развертывания.
Попробуйте использовать относительные пути в настройках. http://www.morethanseven.net/2009/02/11/django-settings-tip-setting-relative-paths/ – xtranophilist
Пути шаблонов шаблонов не будут одинаковыми на серверах разработки и производства. Как отмечалось выше, всегда лучше использовать относительные пути – Amar
Спасибо, ребята, что сработало. Если вы можете опубликовать это в качестве ответа, я соглашусь с ним – MohitC