我正在尝试调试我的Django应用程序中出现的这个奇怪的404错误。
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.
“这里不允许使用目录索引”。意思?什么是目录索引?
我用Google搜索,我发现所有结果都与提供静态文件有关。但是,我不认为我这样做。这个错误意味着什么?
答案 0 :(得分:7)
检查settings.py文件中的STATIC_URL值。您希望该值成为存储静态文件的子文件夹 - 通常为STATIC_URL = '/static/'
。
答案 1 :(得分:3)
答案取决于您使用的django版本。对于1.4+,然后只需设置STATIC_URL
对于1.3.x而言,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/
,那么这将是admin媒体目录中的index.html,但内部静态服务器不允许索引,因此它会引发错误。
接受的答案并不完全正确。设置STATIC_URL
可能会产生副作用,但真正的问题是ADMIN_MEDIA_PREFIX
错误。
最佳设置是:
ADMIN_MEDIA_PREFIX = '/media/'
或
ADMIN_MEDIA_PREFIX = '/admin/media/'
对于1.4,只需将STATIC_URL
设置为ADMIN_MEDIA_PREFIX
已弃用
https://docs.djangoproject.com/en/dev/releases/1.4/#django-contrib-admin