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. Не уверен, что это лучший способ, но пока работает.

Вернуться на верх