【发布时间】:2015-06-05 22:47:39
【问题描述】:
当前结构:
MySite
|--MySite
| |--static
| |--MySite
| |-- site_wide.css
|--MyApp
|--static
|--MyApp
|-- app_specific.js
|-- app_specific.css
settings.py:
STATIC_URL = "/static/"
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "/MySite/static/"),
)
使用以下代码,我可以成功链接到 app_specific.js 和 app_specific.css,但无法链接到 site_wide.css
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'MyApp/app_specific.css %}" />
<link rel="stylesheet" type="text/css" href="{% static 'MySite/site_wide.css' %}" />
... site body ...
<script type="text/javascript" src="{% static 'MyApp/app_specific.js' %}" ></script>
检查生成的 html 后,第二个链接的 href 为:
href="/static/MySite/site_wide.css"
不存在的。
我目前的理解是,django 会在STATIC_URL 定义的路径中搜索我的链接文件,然后(如果未找到)通过SATICFILES_DIRS 中列出的路径进行,但它显然从未查看指定的路径在STATICFILES_DIRS。
我是 django 的新手,想了解它是如何工作的。其他一些类似的问题提到了collectstaticfiles 或类似的东西,但都非常不清楚。
任何帮助将不胜感激!
附:我所知道的一切都来自官方 Django 1.8 教程/文档,所以请不要发布已弃用的答案。仅限 1.8。
【问题讨论】: