当调试关闭时,我无法让Django正确引用我的静态文件。我知道这个网站上有很多关于此的帖子,但他们都没有解决我的问题。未找到Django静态文件(调试关闭)
我的目录树是这样的:
└── project
└── app1
└── app1
├── manage.py
└── project
└── project.sock
└── projectenv
└── static
└── template
在我settings.py
,我有以下:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
在我的nginx的配置文件,我有以下几点:
location /static {
autoindex on;
alias /home/user/myproject/static/;
}
运行./manage.py collectstatic
将我的所有文件正确放置到静态目录中。
然而,在运行我的服务器,所有这些静态文件404:
[22/Jul/2016 17:05:31] "GET /static/lib/bootstrap/js/bootstrap.min.js HTTP/1.1" 404 6418
[22/Jul/2016 17:05:31] "GET /static/lib/bootstrap/css/bootstrap.min.css HTTP/1.1" 404 6418
[22/Jul/2016 17:05:31] "GET /static/lib/jquery/jquery.min.js HTTP/1.1" 404 6418
[22/Jul/2016 17:05:31] "GET /static/lib/bootstrap/js/bootstrap.min.js HTTP/1.1" 404 6418
静态文件都放在同一个目录中我的manage.py文件。我究竟做错了什么?
在我的urls.py中添加这个工具,但不是我应该直接从nginx服务它们吗?
if settings.DEBUG is False: #if DEBUG is True it will be served automatically
urlpatterns += patterns('',
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
)
这是因为速度较慢的静态文件渲染经过Django的,而不是由 您的Web服务器提供直接
你能列出你的项目目录结构吗? –
您的应用程序静态文件被提供?你还可以检查'static'目录的权限吗? –
我不知道nginx,但是与Apache服务相比,它看起来很少编码。看看这里的Apache示例https://docs.djangoproject.com/en/1.9/howto/deployment/wsgi/modwsgi/#serving-files – HenryM