Django установка debug=False разрушает ссылки href
Я разрабатываю сайт с использованием фреймворка Django. Он прекрасно работает при использовании Django=True, однако, когда я устанавливаю Django=False, система не может найти другие html файлы, к которым обращаются по ссылкам <a href=.... Допустим, я разрабатываю 'mysite', тогда следующий код:
<li><a href="index-2.html"><i class="fab fa-dribbble"></i></a></li>
присутствует за иконкой на сайте mysite. При нажатии на иконку пользователь переходит на 'mysite.com/index-2.html', однако при этом возникает ошибка "The requested resource was not found on this server".
И это происходит только когда мы устанавливаем Django=False и в продакшене. Ни одна ссылка на домашней странице не работает из-за этого.
попробуйте использовать функцию onclick вместо href а в статических файлах вы должны добавить некоторые настройки для обслуживания статических файлов в django.
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'
#STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
# add manual
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
MEDIA_ROOT = os.path.join(BASE_DIR,'static/images/')
MESSAGE_TAGS = {
messages.ERROR: 'danger'
}
если это работа, пожалуйста, свяжитесь со мной, я нашел это из приложения фриланса
Чтобы решить эту проблему, я добавил специальные функции для каждого из .html файлов в файл views.py и добавил ссылку на функцию в основной html файл. Например: Я добавил следующее в свой файл views.py:
def about(request):
return render(request,'about.html')
и используется следующим образом в index.html:
href = '\about'
Выполнив это для всех используемых html-файлов, вы решили проблему как для debug=True, так и для debug=False. Не уверен, что это лучший способ, но пока работает.