【发布时间】:2016-03-15 01:10:22
【问题描述】:
正如标题所说,只加载了 Django 模板中的第一个静态文件。
这是有问题的代码:
{% load staticfiles %}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{% block title %}{% endblock title %}</title>
<link rel="stylesheet" href="{% static 'global/css/grid.css' %}" media="screen" title="grid" charset="utf-8">
<link rel="stylesheet" href="{% static 'global/css/style.css' %}" media="screen" title="main" charset="utf-8">
</head>
我在我的 STATICFILES_DIRS 中正确设置了“全局”,该目录中同时存在“grid.css”和“style.css”,并且两种样式不冲突。
但是当我渲染一个包含上述代码的页面时,只会加载“grid.css”。
当我在 chrome 中检查检查元素时,两个链接都正确显示/渲染:
<link rel="stylesheet" href="global/css/grid.css" media="screen" title="grid" charset="utf-8">
<link rel="stylesheet" href="global/css/style.css" media="screen" title="main" charset="utf-8">
但是当我检查 chromes 开发工具的“来源”时,它会显示文件夹“static/global/css”,并且在其中仅显示 grid.css。所以 Django 没有在响应中传递 style.css。
我知道 style.css 有效,当我注释掉加载 grid.css 的行时,style.css 确实 加载。
因此,似乎只有模板中请求的第一个静态文件才会在响应中传递。
【问题讨论】:
-
所以如果你改变css文件的顺序,它又是第一个加载的?
-
是的,如果我在上面的代码中切换 grid.css 和 style.css,那么 style.css 会加载而 grid.css 不会