正如标题所说,只加载了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>
我有&#39;全球&#39;在我的STATICFILES_DIRS中正确设置,都是&#39; grid.css&#39;和&#39; style.css&#39;存在于该目录中,两种样式都不冲突。
但只有&#39; grid.css&#39;当我使用上面的代码渲染页面时加载。
当我检查chrome中的inspect元素时,正确显示/呈现两个链接:
<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 dev工具显示文件夹&#39; static / global / css&#39;,并在其中仅显示 grid.css。所以Django没有在响应中提供style.css。
我知道style.css有效,当我注释掉加载grid.css的行时,style.css 加载。
同样,似乎只有模板中请求的第一个静态文件才会在响应中传递。
答案 0 :(得分:1)
它是HTML属性&#39; title&#39;。如果在样式表链接上设置了该样式表,则该样式表将成为“首选”样式表。样式表和其他所有内容都将被忽略。我摆脱了标题属性并且有效。
答案 1 :(得分:0)
我不认为这是来自Django,据我所知django不这样做。
清除缓存,然后重试。也许您的第一个CSS文件可能已从缓存加载,而第二个文件可能不会先缓存。
如果在清除缓存后未加载这两个文件,则静态文件配置中存在错误。
如果在清除缓存后第一个CSS出现,请检查Google Chrome中的“网络”标签。查看请求的位置,并查看收到的响应。检查响应是作为文件还是404或503进行检查并进行相应的调试。