我遇到了Django 1.6的问题:
我想更改django中的默认静态文件目录。我不想要它
project/myapp/static
但在project/static
我读了django的文档,添加了
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,'static')
STATICFILES_DIR =(os.path.join(BASE_DIR, 'static'),)
在我的settings.py
中然后我运行./manage.py collectstatic
并按预期复制文件。
最后我启动了服务器,应用程序正在使用django样板插件,所以我的模板以:
开头{% extends 'dh5bp/base.html' %}
{% load url from future %}
{% load staticfiles %}
{% block head %}
<link rel="stylesheet" href="{% static "css/homepage.css" %}">
{% endblock %}
Css不会加载:但是在我的服务器日志中,我得到了:
[29/Aug/2014 11:23:03] "GET /static/js/dh5bp/plugins.js HTTP/1.1" 304 0
[29/Aug/2014 11:23:03] "GET /static/css/homepage.css HTTP/1.1" 404 1657
正如您所见,来自dh5bp(Boiler plate插件)的静态文件已正确加载,而我的应用程序中的静态文件未正确加载。
我尝试将+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
添加到我的urls.py,就在urlpatterns之后,它没有用。
所以,如果有人可以告诉我聊天我做得很糟糕,我应该在设置中做些什么改变。这可能很棒
编辑:
尝试了解决方案here,它给了我相同的结果:只加载来自样板的静态。
更何况我显然已经检查过/ project / static中是否存在文件,它们确实存在。
编辑2:
我试图将旧的静态文件夹放在我的应用程序中,以确保他没有在旧文件夹中查找文件。它没有,所以我不知道django期望那些文件在哪里?是否有调试设置可以帮助解决这个问题?
答案 0 :(得分:3)
STATIC_ROOT
STATICFILES_DIRS
不应该在STATICFILES_DIRS
STATIC_ROOT
应包含项目静态文件的路径
collectstatic
是运行STATICFILES_DIRS
时收集所有静态文件的位置。
如果使用DEBUG = True运行django服务器,则服务器将直接以--insecure
形式提供静态文件,如果DEBUG = False,则根本不会处理静态文件。在这种情况下,您可以使用选项{{1}}运行django服务器。
有关详情,请参阅此related question。