bootstrap字体不会在绝对css路径中加载

时间:2014-12-30 10:58:45

标签: html css twitter-bootstrap fonts

我的网站项目基于MVC stratuctre,所以我有一个像 [site] / admin / login 这样的网址,或者我的网址可以是 [site] / user / edit / [id] 但是在bootstrap中我们有这样的css相对路径:

<link href="libs/bootstrap/css/bootstrap.min.css" rel="stylesheet">

我的地址是 [site] / admin / login ,然后 [site] /admin/login/libs/bootstrap/css/bootstrap.min.css 不会存在 所以我必须使用绝对路径来加载css文件,如:

...
<link href="http://example.com/libs/bootstrap/css/bootstrap.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="http://example.com/libs/jquery2.1.1/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="http://example.com/libs/bootstrap/js/bootstrap.min.js"></script>
...

但我的问题是当我使用bootstrap.css的绝对css路径时,我不会加载字体,你可以在这个图像中看到我使用www时。在我的页面正确加载并显示图标字体: enter image description here

但是当我打开没有www的网址时。字体无法加载,图标不显示: enter image description here

我认为这是因为没有www的css路径与www不相等的字体路径。图像中的网址是真实的,你可以自己测试一下。有什么解决方案吗?

2 个答案:

答案 0 :(得分:0)

示例你有一个目录your_project / libs

如果您在your_project / view / index.html中有位置

你需要进入:

<link href="/libs/bootstrap/css/bootstrap.min.css" rel="stylesheet">

你需要添加/ libs,如果是你的情况或其他路径

../ sub-directorio =&#34; /&#34;添加到目录

答案 1 :(得分:0)

如果我想使用绝对引用,解决此问题的最简单方法是将我的所有路径放在http://example.com ...基础上:

...
<link href="http://example.com/libs/bootstrap/css/bootstrap.css" rel="stylesheet" type="text/css"/>
<script src="http://example.com/libs/jquery2.1.1/jquery-2.1.1.min.js"></script>
<script src="http://example.com/libs/bootstrap/js/bootstrap.min.js"></script>
...

然后使用mode_rewrite将http://www.example.com ..重定向到无www http://example.com ...在htaccess中:

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

然后,如果有人打开一个带有www的网址,它会重定向到没有www的网址,并且页面显示正确。这个解决方案可能不是最佳解决方案,但它有效并解决了我的问题