【问题标题】:IIS looking bootstrap fonts under wrong locationIIS 在错误的位置寻找引导字体
【发布时间】:2018-05-23 03:50:09
【问题描述】:

我有 ASP.NET MVC 5 应用程序。该应用程序的根位置有fonts 文件夹。 (它是 VS 2017 在创建新应用程序时默认创建的)

当我在 Visual Studio 中本地运行应用程序时,一切正常。但是当我将它部署到 IIS 并浏览使用 glyphicons 的任何页面时,我看到下面的错误(在 Fiddler 中)

不知道为什么路径变了?而不是在/fonts 文件夹下查找字体,而是在/Content/fonts 文件夹下查找。

【问题讨论】:

  • 部署时是否使用捆绑?如果是这样,您的捆绑路径可能会混淆您的 CSS 路径,因为它们是相对的。如果您将 CssRewriteUrlTransform() 函数传递给您的包,它应该重写 URL,以便它们仍然指向正确的位置,例如 new StyleBundle("~/Css/Site").Include("~/Content/PickDateThemes/default.css", new CssRewriteUrlTransform())

标签: asp.net-mvc twitter-bootstrap twitter-bootstrap-3 asp.net-mvc-5


【解决方案1】:

请记住,CSS 文件中的路径是相对的,使用内置捆绑机制可能会导致您的路径解析到不正确的位置。为了解决此问题,您可以向捆绑包中的每个 CSS 文件传递​​一个附加参数,该参数将重写压缩 CSS 中的路径,以便它最终仍指向您的文件(例如图像和字体)的正确路径。

示例(来自我当前的一个项目)

var siteCss = new StyleBundle("~/Css/Site")
           .Include("~/Content/PickDateThemes/default.css", new CssRewriteUrlTransform())
           .Include("~/Content/PickDateThemes/default.date.css", new CssRewriteUrlTransform())
           .Include("~/Content/PickDateThemes/default.time.css", new CssRewriteUrlTransform())
           .Include("~/Content/app.css", new CssRewriteUrlTransform())
           .Include("~/Content/DataTables/css/dataTables.foundation.css", new CssRewriteUrlTransform());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 2015-05-01
    • 2012-05-07
    • 2018-01-31
    • 1970-01-01
    • 2021-08-25
    • 2017-04-13
    相关资源
    最近更新 更多