基本上我得到以下
HTML:
<button class="disabled btn-primary btn" type="submit" disabled=""> <i class="glyphicon glyphicon-ban-circle"></i> Log in </button>
在本地,图标在按钮上显示正常,但是当我在Windows Azure上运行时,我得到以下按钮,其中包含一个奇怪的外观前缀而不是图标:
考虑到这一点,我意识到当在本地访问我的网站时,浏览器会尝试加载文件:
/Content/fonts/glyphicons-halflings-regular.woff(它成功完成)
当在线(在天蓝色)时,它会尝试加载:
/fonts/glyphicons-halflings-regular.woff
为什么它没有放置它在本地执行的/ Content前缀.
我正在使用标准的bootstrap文件,它是在本地和在线运行的完全相同的网站.
另外,我通过以下方式捆绑内容:
bundles.Add(new StyleBundle("~/Content/bootstrapcss").Include( "~/Content/bootstrap/bootstrap.css"));
文件结构如下所示:
另外bootstrap正在寻找这样的文件:
url('../fonts/glyphicons-halflings-regular.woff')
所以我认为它会在Content文件夹中查找而不是root文件,因为它当前位于Content / bootstrapcss文件夹中.
解决方法
我们最近有类似的问题(虽然我们使用的是metroUI-
http://metroui.org.ua/
).基本上我们发现我们正在捆绑css文件,因此当我们在Windows Azure中部署应用程序时,没有加载任何字体.
在我们的例子中,我们有以下目录结构:
而modern.css引用的字体就像
../fonts/iconFont.eot
我们正在捆绑css文件,如下所示:
bundles.Add(new StyleBundle("~/Content/css").Include( "~/Content/css/modern.css","~/Content/css/modern-responsive.css"));
由于捆绑,应用程序在应用程序根目录中的/ fonts目录中查找字体,这显然不存在.
长话短说,我们最终改变了包名:
bundles.Add(new StyleBundle("~/Content/css/metroUI").Include( "~/Content/css/modern.css","~/Content/css/modern-responsive.css"));
更改包名称后,事情就开始正常运行了.