Что означает "Каталог индексов здесь не разрешен". значит в ошибке Django?
Я пытаюсь отладить эту странную ошибку 404, которая появилась в моем приложении Django.
Page not found (404)
Request Method: GET
Request URL: http://78.198.124.245/
Directory indexes are not allowed here.
You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.
Что означает "Каталог индексов здесь не разрешен". имею в виду? Что такое индекс каталога?
Я погуглил, и результаты, которые я нашел, имеют отношение к обслуживанию статических файлов. Тем не менее, я не думаю, что я делаю это. Что означает эта ошибка?
4 ответа
Проверьте в файле settings.py значение STATIC_URL. Вы хотите, чтобы значение было подпапкой, где хранятся ваши статические файлы - как правило, STATIC_URL = '/static/'
,
Ответ зависит от того, какую версию django вы используете. Для 1.4+ тогда просто установите STATIC_URL
Для 1.3.х это не так много, как STATIC_URL
устанавливается как то, что ваш ADMIN_MEDIA_PREFIX
установлено в.
Если вы установите его /admin/
тогда сервер разработки django попытается обслуживать статические файлы для всего /admin/
вне contrib/admin/media/
папка
Это означает, что http://127.0.0.0:8000/admin/postz/post/473
будет пытаться найти статический контент в django/contrib/admin/media/postz/post/473
и это то, что 404
Если вы пытаетесь получить доступ http://127.0.0.0:8000/admin/
тогда это будет index.html внутри медиа-каталога администратора, но внутренний статический сервер не разрешает индексы, поэтому он выдает ошибку.
Принятый ответ не совсем правильный. настройка STATIC_URL
возможно, работал как побочный эффект, но реальная проблема заключалась в том, что ADMIN_MEDIA_PREFIX
был неправ.
Лучшие настройки будут:
ADMIN_MEDIA_PREFIX = '/media/'
или же
ADMIN_MEDIA_PREFIX = '/admin/media/'
Для 1.4 тогда просто установите STATIC_URL
как ADMIN_MEDIA_PREFIX
устарела
У меня была такая же проблема некоторое время назад, и я тоже искал ответ, но не нашел ничего полезного. Однако проблема для меня заключалась в том, что имя, которое я ввел в пути в файле URL-адресов в моем приложении, не соответствовало имени функции в представлениях.
path('home-en', views.home_en, name="home")
Здесь 'home-en' должно было быть 'home_en', чтобы соответствовать имени функции представления.
Причина получения этой ошибки заключается в том, что, возможно, мы пытаемся сопоставить наше представление с пользовательским URL-адресом, который, к счастью, является именем каталога. так что в этом случае, например: мы храним все наши статические файлы в папке со статическим именем и пытаемся создать URL: path('static/',views.static_view). Так что в этом случае не получится. что мы можем сделать, мы можем изменить пользовательский URL-адрес на любой общий URL-адрес, такой как «inex/», и он будет работать.