部署到 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 文件。
事实如下:
- Mime 类型全部添加到 IIS 7.0(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')
format('svg'); font-weight: normal;font-style: normal;
}
这里真的没有足够的东西可以肯定地说,但如果我不得不冒险猜测,我想你将 Font Awesome 包含在一个包中,并且包路径正在破坏字体引用。
包路径,即~/bundles/foo
是文字路径。当捆绑器加入并缩小所有内容时,它会将文件保存到该位置。样式包通常使用 ~/Content/foo
,因为倾向于引用 ~/Content
中的图像和字体等内容。当然,默认情况下,捆绑仅发生在生产中,因此它不会影响您的开发。我不确定您实际使用什么作为捆绑路径,但那将是我首先查看的地方。
另一个潜在的问题是可能根本没有加载包。当您不小心创建了一个映射到物理目录的包路径时,这很常见。例如,如果您的包路径是 ~/Content/fonts
,并且您的项目中的 ~/Content
下有一个名为 fonts
的物理文件夹,那么您的包将不会被加载并且 none该包中的 scripts/css 将应用于该页面。确保您的包路径未引用物理目录。
当我 运行 我的项目在 Visual Studio 2013 本地时,Font Awesome 图标工作。但是,当部署时它们不存在。
当来自服务器的 运行 时,IE 开发人员工具显示 Css 正在进入,但没有调用字体。没有404错误!没有403错误!没有什么。这就像 Css 跳过了 @font-face 声明,因为它甚至没有尝试调用 EOT 文件。
事实如下:
- Mime 类型全部添加到 IIS 7.0(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')
format('svg'); font-weight: normal;font-style: normal; }
这里真的没有足够的东西可以肯定地说,但如果我不得不冒险猜测,我想你将 Font Awesome 包含在一个包中,并且包路径正在破坏字体引用。
包路径,即~/bundles/foo
是文字路径。当捆绑器加入并缩小所有内容时,它会将文件保存到该位置。样式包通常使用 ~/Content/foo
,因为倾向于引用 ~/Content
中的图像和字体等内容。当然,默认情况下,捆绑仅发生在生产中,因此它不会影响您的开发。我不确定您实际使用什么作为捆绑路径,但那将是我首先查看的地方。
另一个潜在的问题是可能根本没有加载包。当您不小心创建了一个映射到物理目录的包路径时,这很常见。例如,如果您的包路径是 ~/Content/fonts
,并且您的项目中的 ~/Content
下有一个名为 fonts
的物理文件夹,那么您的包将不会被加载并且 none该包中的 scripts/css 将应用于该页面。确保您的包路径未引用物理目录。