0

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

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

以下是事实:

  • IIS 7.0 中都添加了 Mime 类型(eot、svg、woff、woff2、ttf)
  • css 的文件结构是 -- fonts > font-awesome > css
  • 字体的文件结构是 -- fonts > font-awesome > fonts
@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')

格式('svg');字体粗细:正常;字体样式:正常;}

4

1 回答 1

1

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

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

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

于 2016-03-15T18:49:22.940 回答