我们能够解决 VS2013 发布期间有关字体渲染的问题。
“app.css”和“style.css”字体中的字体 URL 指向一个位置,例如“fonts/icomoon .eot”,从技术上讲,根据IIS的目录浏览无法找到具体路径。
我们通过将“/Content/stylesheets/”添加到所有当前字体 URL 中来进行更改,如下所示“/Content/stylesheets/fonts/icomoon.eot”并且它有效。
但是我们仍然不明白为什么 Debug模式对我们的 css 文件之前的 url 没有问题,并且字体渲染得很好。
你能提出任何修复建议吗?或者我们的这个修复可以吗(手动编辑 css 文件内的字体 URL)?
最佳答案
我们找到了更好的字体问题解决方案。
asp.net 捆绑是造成调试和发布模式结果不同的根源。
默认情况下,如果编译处于 Debug模式,则捆绑会关闭,而如果处于 Release模式,则会打开捆绑。
为了解决该问题,我们通过将此行添加到 BundleConfig.Cs 中,在 Release模式下关闭了 asp.net 捆绑。
BundleTable.EnableOptimizations = false;
asp.net 捆绑的作用是为所有 css 和 js 文件创建一个虚拟目录。问题是它无法在 css 文件中找到 url(特别是字体)的路径。
但我们尝试过的另一个解决方案是:
bundles.Add(new StyleBundle("~/bundles/LayoutCss").Include(
"~/Content/stylesheets/style.css", new CssRewriteUrlTransform() )
.Include("~/Content/stylesheets/app.css", new CssRewriteUrlTransform() )
.Include("~/Content/bower_components/slick/dist/slick.css"));
关于css - 字体在 Release模式下无法正确呈现,但在 ASP NET Webforms 的 Debug模式下正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32692151/