我正在尝试将 ASP.NET 与 ASP.NET MVC 4 应用程序 bundle 在一起。情况是,我想制作一个 CDN 风格的服务,其中包含 JS 和 CSS 文件,您可以使用此类型地址从其他站点访问这些文件:http://www.mycdn.com/scripts/plugin/js ,它 bundle 并缩小所有包含的 .js 文件。
我的一个文件的 bundle 配置如下所示:
bundles.Add(new ScriptBundle("~/Scripts/plugin/pluginjs").Include("~/Scripts/plugin/jquery.plugin.js"));
但是,当我这样做时,即使在更改原始 js 文件后, bundle 也不会更新。当我刷新浏览器时,我不断收到 304 Not Modified,并且缩小文件的内容未更新。我怎样才能更新 bundle ,因为包含旧内容的 bundle 是没有用的?我尝试了各种方法,但无法找到解决方案。
最佳答案
我刚刚遇到了完全相同的问题。我有一个包含 2 个 CSS 文件的文件夹:
- ~/Content/main.css
- ~/Content/main.min.css(在我之前的手动缩小过程中预先存在)
我的 bundle 代码是这样的:
bundles.Add(new StyleBundle("~/css/main").Include("~/content/main.css"));
无论我改变了多少main.css
输出是具有相同内容的相同网址:
<link href="/css/main?v=6Xf_QaUMSlzHbXralZP7Msq1EiLTd7g1vId6Vcy8NJM1" rel="stylesheet"/>
更新 bundle 的唯一方法是重建我的解决方案 - 显然不是最好的方法。
但是一旦我删除main.min.css
,一切开始工作得很好。再玩一点我发现,如果两者都有 main.css
和main.min.css
,然后更新main.min.css
实际上会更新 bundle ...很奇怪,但至少是可以预测的。
关于ASP.NET bundle - 包含的文件更改后 bundle 未更新(返回 304 未修改),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12158933/