今天使用flask去加载图标字体时,遇到了一个问题,偶然情况下找到了解决方法,一直想不通,求各位讲解一番。我使用flask-bootstrap,字体使用FontAwesome。
这是我的项目文件:
我的css文件如下:
@font-face {
font-family:'FontAwesome';
src:url(../fonts/fontawesome-webfont.eot-v=4.1.0);
src:url(../fonts/fontawesome-webfont.eot-#iefix&v=4.1.0)
format('embedded-opentype'),url(../fonts/fontawesome-webfont.woff-v=4.1.0)
format('woff'),url(../fonts/fontawesome-webfont.ttf-v=4.1.0)
format('truetype'),url(../fonts/fontawesome-webfont.svg-v=4.1.0#fontawesomeregular)
format('svg');
font-weight:normal;
font-style:normal
}
.fa {
display:inline-block;
font-family:FontAwesome;
font-style:normal;
font-weight:normal;
line-height:1;
-webkit-font-smoothing:antialiased;
-moz-osx-font-smoothing:grayscale
}
.fa-power-off:before {
content:"\f011"
}
我的html文件如下
{% extends "bootstrap/base.html" %}
{% block head %}
<link rel='stylesheet' id='style-css' href="{{ url_for('static',filename='themes/style.css') }}" type='text/css' media='all' />
{% endblock %}
{% block content %}
<section class="container">
<div class="speedbar">
<div class="pull-right">
<i class="fa fa-power-off">
</i>
<a href="" >
login
</a>
</div>
</div>
</section>
{% endblock %}
我使用url_for('static',filename='themes/style.css')
去加载css文件,并且能加载使用的图标文件,但是我使用url_for('static',filename='themes/css/style.css')
时能加载css文件,却不能加载使用的图标文件,思考了很久,非常困惑,希望大家能讲解一下为什么?
这个问题很大可能是路径问题。从你截图的路径来看的话,用url_for('static',filename='themes/css/style.css') 与 url(../fonts/fontawesome-webfont.eot-v=4.1.0) ,这样应该不会有错。你可以看看,这样用之后,用chrome检查network中,fontawesome-webfont.eot-v=4.1.0的完整链接是什么,应该能够找到问题的原因。