更改 django 的默认静态目录



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'),)

在我的设置.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 %}

Cs不会加载:但在我的服务器日志中,我得到了:

[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(锅炉板插件)中的静态文件加载正确,而我的应用程序中的静态没有正确加载。

我试图将+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)添加到我的urls.py中,就在urlpatters之后,但没有成功。

所以,如果有人能告诉我聊天我做得不好,我应该在设置中更改什么,请告诉我。这可能是伟大的

编辑:

在这里尝试过这个解决方案,它给了我同样的结果:只加载了来自样板的静态。

更不用说,我显然已经检查了/project/static中是否存在这些文件,它们确实存在。

编辑2:

我试着把旧的静态文件夹放在我的应用程序中,以确保他不会在旧文件夹中寻找文件。没有,所以我不知道django希望这些文件在哪里?有没有调试设置可以对此有所帮助?

您的STATIC_ROOT不应该在STATICFILES_DIRS
STATICFILES_DIRS应该包含项目静态文件的路径
STATIC_ROOT是运行collectstatic时收集所有静态文件的地方。

若在DEBUG=True的情况下运行django服务器,则服务器将直接从STATICFILES_DIRS提供静态文件,若DEBUG=False,则根本不会处理静态文件。在这种情况下,您可以使用选项--insecure运行django服务器。

请参阅此相关问题了解更多信息。

最新更新