css - 字体在 Release模式下无法正确呈现,但在 ASP NET Webforms 的 Debug模式下正常工作

标签 css asp.net fonts webforms webfonts

我们能够解决 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/

相关文章:

c# - ASP.NET MVC4 - 以不止一种方法添加到 ViewBag?

css - 是什么决定了在浏览器中显示的默认字体?

typescript - 如何在 react-native 中忽略操作系统字体?

html - 如何在AngularJS中大写和大写?

internet-explorer - IE9 不渲染背景图片

c# - 替换 <li> 中的控件

asp.net - BinaryWrite 与 WriteFile

fonts - 条码字体与条码打印机字体有什么区别

css - 为什么 MuiThemeProvider 会覆盖组件样式?

css - Jquery ui 选项卡事件选项卡背景颜色未更改