【问题标题】:Bundling not rendering styles捆绑不渲染样式
【发布时间】:2018-11-09 13:28:24
【问题描述】:

我有一个捆绑文件的项目,例如:

bundles.Add(new StyleBundle("~/css/master/supplierbundle").Include(
                      "~/Content/components/bootstrap/dist/css/bootstrap.min.css",
                      "~/Content/components/jquery-ui/themes/smoothness/jquery-ui.css",
                      "~/css/mystyles.css"));

BundleTable.EnableOptimizations = true;

这些文件是捆绑在一起的,所以在我的页面源中我有:

<link href="/css/master/supplierbundle" rel="stylesheet"/>

但样式没有呈现 - 只是页面显示没有任何样式

它不能在调试或发布模式下工作。

编辑

在头部插入包:

@Styles.Render("~/css/master/supplierbundle")

【问题讨论】:

  • 当您导航到/css/master/supplierbundle 时会得到什么? javascript 控制台中是否有任何错误?
  • @Joseph &lt;html&gt;&lt;body&gt;&lt;h1&gt;Page not found&lt;/h1&gt;&lt;h3&gt;No umbraco document matches the url '/css/master/supplierbundle'.&lt;/h3&gt;&lt;p&gt;This page can be replaced with a custom 404. Check the documentation for "custom 404".&lt;/p&gt;&lt;p style="border-top: 1px solid #ccc; padding-top: 10px"&gt;&lt;small&gt;This page is intentionally left ugly ;-)&lt;/small&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;
  • 这就是你的答案; href中的url一定是错误的。
  • 请分享如何将此链接标签添加到您的_layout/master 页面的代码。我错过了 cachebusting 查询字符串,例如 /content/master/supplierbundle?v=K8bEDKv6DE_2BHLRTdisqFsdq1BnRrJx3CvCQ_HR7eo1
  • 没有错,是bundle链接@pfx

标签: css bundle bundling-and-minification


【解决方案1】:

检查~/bundles/ 路径是否存在于 web.config 文件的 umbracoReservedPaths 键中。如果不是,Umbracco 会处理 url 而不是 ASP.NET 的 bundle-handler,这会发生在返回的 404 页面提到 'No umbraco 文档与 url 匹配

值中可能有更多路径,但至少必须存在 ~/bundles/

<add key="umbracoReservedPaths" value="~/umbraco,~/install/,~/bundles/" />

【讨论】:

  • 不,不是这个,我已将捆绑路径添加到保留路径@pfx
  • 您是否尝试过使用完整路径~/css/master/supplierbundle
  • 我尝试了上述方法并将我的捆绑包更改为前缀 /bundles,这是默认的,也在 umbraco reservedPaths 中。问题仍然存在,而且非常随机,例如。我有 2 个不同的布局,它们使用不同的包,并且这些包中的随机文件不会在缩小中呈现。我在控制台中也没有错误。只是一些样式不起作用@pfx