如何配置Django';s";“静态文件”;要列出目录内容的应用程序?

如何配置Django';s";“静态文件”;要列出目录内容的应用程序?,django,django-1.5,Django,Django 1.5,我正在调试模式下使用Django的内置web服务器 这是我的设置的一部分。py: STATIC_ROOT = '/home/user/static_root' STATIC_URL = '/static/' STATICFILES_DIRS = ( '/abs/path/to/static/dir', ) STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'djan

我正在调试模式下使用Django的内置web服务器

这是我的
设置的一部分。py

STATIC_ROOT = '/home/user/static_root'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    '/abs/path/to/static/dir',
)
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
如果我访问
http://localhost:8000/static/png/
,我希望在
/abs/path/to/static/dir/png
中看到可用的文件列表。相反,我得到了一个404错误“这里不允许使用目录索引”

现在如果我直接访问文件,例如
http://localhost:8000/static/png/test.png
,它可以工作

我已经检查了一些答案()但没有成功


那么,是否有人知道如何配置Django,以便
静态文件
应用程序列出目录内容?

这些文件不是Django提供的。Show index是apache/nginx的一个配置参数

在生产中,使用nginx,只需添加到静态服务部分:

    location ^~ /static/ {
            autoindex on;
            root /var/www/static_dir;
            if ($query_string) {
                    expires max;
            }
    }
对于dev环境,Hedde的答案确实是一个很好的答案,但是显示可能与HTTP服务器提供的不完全相同。不要依赖它的外观和感觉

'show_indexes': True
根据


只是为了完整性,因为它可能会帮助其他人,这就是我为解决问题所做的

按照@Hedde的回答,我开始使用
show\u索引

设置.py
  • 保持所有配置相同(即所有
    静态变量)
  • 已安装的应用程序中删除
    'django.contrib.staticfiles'
问题是我无法使用Django的“内置”静态文件配置方法(通过
settings.py
)指定
show\u index
参数。通过在
安装的应用程序中安装
'django.contrib.staticfiles'
,django将创建带有
show\u index=False
的静态文件处理程序,忽略我的
urlpatterns

url.py 在urlpatterns中添加了以下内容:

url(regex  = r'^%s(?P<path>.*)$' % settings.STATIC_URL[1:], 
    view   = 'django.views.static.serve', 
    kwargs = {'document_root': '/abs/path/to/static/dir',
              'show_indexes' : True})
url(regex=r'^%s(?P.*)$'%settings.STATIC\u url[1:],
视图='django.views.static.service',
kwargs={'document_root':'/abs/path/to/static/dir',
“显示索引”:True})

@ArnarYngvason是的,但它仍然有效,这意味着我应该在
urlpatterns
(在
urls.py
)中为它显式添加一个条目?我会尝试一下,但考虑到所有的
静态*
配置都是在
设置中完成的。py
事实上django不提供此服务,因为在正常使用中,apache或nginx会提供此服务。。。在开发中启用功能比在prod.2.2链接中禁用功能更干净
url(regex  = r'^%s(?P<path>.*)$' % settings.STATIC_URL[1:], 
    view   = 'django.views.static.serve', 
    kwargs = {'document_root': '/abs/path/to/static/dir',
              'show_indexes' : True})