ASP.NET 包中未使用提供的虚拟路径

Virtual path provided not used in ASP.NET bundles

我的 BundleConfig 中有以下包:

bundles.Add(new StyleBundle("~/Content/Basic/globalCss").Include("~/Content/Basic/global.css"));

我正在使用以下内容来呈现 CSS 包:

@Styles.Render("~/Content/Basic/globalCss")

在我的本地机器(调试环境)上,CSS 文件是 included/loaded 通过它的绝对路径。我已经编译 off/false 进行调试,所以这是有道理的。当我推送到 QA 环境(编译转为 on/true)时,我看到页面中包含以下虚拟路径:

<link href="/Content/globalbasicCss?v=6i8x1Cxf8pXm5g9uxAk8-wcO02DFmeAgYLWpJk-3r_g1" rel="stylesheet">

这是我拥有的旧虚拟路径 ~/Content/globalbasicCss

为什么我的包没有使用我提供的新虚拟路径 ~/Content/Basic/globalCss?这是因为没有对捆绑包中包含的 CSS 文件进行任何更改吗?

这就是捆绑和缩小功能。您的 CSS 捆绑包已缩小,如果您有更多文件,它们将被捆绑在一个文件中。

当您通常使用 web.config 设置

在发布模式下构建时会发生这种情况
<compilation debug="false">

这里有更多信息 - http://www.asp.net/mvc/overview/performance/bundling-and-minification

原来我需要对实际捆绑的 CSS 文件进行更改,以便更新该捆绑虚拟路径。我不确定这是为什么,如果有人能更好地理解 ASP.NET 捆绑并解释为什么会这样。

将不胜感激。