如何让静态CSS文件访问Django上的.eot,.ttf,.woff等其他文件

时间:2019-02-18 18:46:32

标签: django django-templates bootstrap-4 django-staticfiles django-bootstrap4

当我尝试访问styles.css时,Django会加载styles.css而不是为其自身加载的文件。

{% load static %}
<link rel="stylesheet" href="{% static 'frontpage/css/style.css' %}">

这是我怀疑是导致问题的styles.css部分

src: url("../fonts/icomoon/icomoon.eot?srf3rx");
src: url("../fonts/icomoon/icomoon.eot?srf3rx#iefix") format("embedded-opentype"), url("../fonts/icomoon/icomoon.ttf?srf3rx") format("truetype"), url("../fonts/icomoon/icomoon.woff?srf3rx") format("woff"), url("../fonts/icomoon/icomoon.svg?srf3rx#icomoon") format("svg");

似乎css文件无法访问.eot文件,但是我无法得知,因为django可以正常显示所有内容。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,花了一些时间寻找解决方法...请按照以下为我解决此问题的方法进行操作:

  1. 您必须确保.ttf文件位于任何 STATIC_ROOT 路径中... 例如:

      

    (例如:{%static'fonts / yourfontname.ttf'%}

  2. 在您的.css文件中,创建 @ font-face 参数,如下所示: 例如:

      

    @ font-face {font-family:yourfontname; src:   url(“ ../ fonts / yourfontname.ttf”); }

    • 非常重要:字体系列名称必须不带引号!大多数人都犯了这个错误。 另外,在url路径中,我使用..,因为我的fonts文件夹是.css文件后面的一个文件夹。因此,此路径取决于您的结构。我只想提到static在CSS文件中不起作用,而是必须考虑正在编辑的.css文件的路径。
  3. 现在,您通常只需要在.css文件中的位置包含字体名称即可。但是此时带引号!!!例如:

  

.logotext {font-family:'yourfontname';左边距:130px;   font-size:40px;等等...}