什么“这里不允许使用目录索引”。意味着Django错误?

时间:2012-05-17 23:03:53

标签: django

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

2 个答案:

答案 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