部署到 Server 2008 R2 时 Font Awesome 不工作

Font Awesome not working when deployed to Server 2008 R2

当我 运行 我的项目在 Visual Studio 2013 本地时,Font Awesome 图标工作。但是,当部署时它们不存在。

当来自服务器的 运行 时,IE 开发人员工具显示 Css 正在进入,但没有调用字体。没有404错误!没有403错误!没有什么。这就像 Css 跳过了 @font-face 声明,因为它甚至没有尝试调用 EOT 文件。

事实如下:

@font-face {
  font-family: 'FontAwesome';
  src: url('../fonts/fontawesome-webfont.eot?v=4.3.0');
  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'),
       url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'),
       url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'),
       url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'), 
       url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular')

format('svg'); font-weight: normal;font-style: normal; }

这里真的没有足够的东西可以肯定地说,但如果我不得不冒险猜测,我想你将 Font Awesome 包含在一个包中,并且包路径正在破坏字体引用。

包路径,即~/bundles/foo是文字路径。当捆绑器加入并缩小所有内容时,它会将文件保存到该位置。样式包通常使用 ~/Content/foo,因为倾向于引用 ~/Content 中的图像和字体等内容。当然,默认情况下,捆绑仅发生在生产中,因此它不会影响您的开发。我不确定您实际使用什么作为捆绑路径,但那将是我首先查看的地方。

另一个潜在的问题是可能根本没有加载包。当您不小心创建了一个映射到物理目录的包路径时,这很常见。例如,如果您的包路径是 ~/Content/fonts,并且您的项目中的 ~/Content 下有一个名为 fonts 的物理文件夹,那么您的包将不会被加载并且 none该包中的 scripts/css 将应用于该页面。确保您的包路径未引用物理目录。