我的MVC站点中有以下文件夹结构:
— Content — Notebook — css
— Content — Notebook — fonts
内容直接位于网站的根目录下.在我的css文件夹中,我有一个具有相对路径的文件
url(‘../fonts/fontawesome-webfont.woff?v=4.0.3’)
我的包目前看起来像:
bundles.Add(new StyleBundle("~/bundles/Content/Notebook/css").Include( "~/Content/Notebook/css/animate.css","~/Content/Notebook/css/font.css","~/Content/Notebook/css/font-awesome.min.css","~/Content/Notebook/css/app.css" ));
这是使用
@Styles.Render("~/bundles/Content/Notebook/css")
这适用于css文件,但字体文件没有加载,我看到它在这里寻找http://localhost/MySite/bundles/Content/fonts/fontawesome-webfont.woff?v = 4.0.3
我看到了,然后尝试将我的包名改为
~/Content/Notebook/css
如果我从名称中删除“捆绑”,我认为这将获得相对的工作路径,
但这样做会导致css文件无法加载.为什么不加载css文件?如果我将“捆绑”这个词带回了它再次起作用的名称.还有任何想法如何让字体与捆绑一起加载?
解决方法
当你这样做:
url('../fonts/fontawesome-webfont.woff?v=4.0.3')
你是指通过相对路径的字体.如果你把你的CSS包放在/ bundles / Content / Notebook / css,那么它会查看bundle / content / fonts,因为这是你的相对路径和浏览器看到你的css文件的位置的组合.
一些可能的选择(或者):
>更改捆绑路径:
bundles.Add(new StyleBundle("~/Content/Notebook/css") ... (the reason your css files didn't load when you removed bundles was that you didn't change the name of the stylebundle)
和
@Styles.Render("~/Content/Notebook/css")
>使用绝对路径引用字体:
url('/Content/notebook/fonts/fontawesome-webfont.woff?v=4.0.3')