16

我正在尝试调试在我的 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 搜索了一下,发现的结果都与提供静态文件有关。但是,我不认为我会那样做。这个错误是什么意思?

4

2 回答 2

11

检查您的 settings.py 文件中的 STATIC_URL 值。您希望该值是存储静态文件的子文件夹 - 通常STATIC_URL = '/static/'

于 2012-05-18T04:53:42.850 回答
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/,那么这将是管理媒体目录中的 index.html,但内部静态服务器不允许索引,所以这就是它抛出的错误。

接受的答案并不完全正确。设置STATIC_URL可能起到了副作用的作用,但真正的问题是这ADMIN_MEDIA_PREFIX是错误的。

最好的设置是:

ADMIN_MEDIA_PREFIX = '/media/' 

或者

ADMIN_MEDIA_PREFIX = '/admin/media/'

对于 1.4,只需将 as 设置STATIC_URLADMIN_MEDIA_PREFIX已弃用

https://docs.djangoproject.com/en/dev/releases/1.4/#django-contrib-admin

于 2012-10-01T10:37:42.860 回答