在发布模式下不能正确呈现字体,但在ASP NET Webforms中正在使用调试模式

时间:2015-09-21 09:50:52

标签: css asp.net fonts webforms webfonts

我们能够解决VS2013发布期间呈现字体的问题。

" app.css "中的字体网址和" style.css "字体指向一个位置,例如" fonts / icomoon.eot "从技术上讲,它无法根据 IIS 的目录浏览找到特定路径。

我们通过添加" / Content / stylesheets / "更改了它所有当前的字体网址看起来像" /Content/stylesheets/fonts/icomoon.eot " 并且工作

但是我们仍然不明白为什么调试模式可以使用我们的css文件的先前网址并且字体呈现正常。

你能建议任何修复吗?或者我们的修复是否正常(手动编辑css文件中的font-urls )?

1 个答案:

答案 0 :(得分:2)

我们找到了更好的字体问题解决方案。

asp.net捆绑是为什么他们在调试发布模式之间的结果不同的原因。

默认情况下,如果编译处于调试模式,则捆绑将关闭,而如果处于释放模式,则会打开它。

要解决这个问题,我们已经在发布模式下关闭了asp.net捆绑,方法是将这些行添加到 BundleConfig.Cs

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"));