我正在尝试将我的所有javascript和css(较少的文件等)移动到一个单独的网站,该网站将托管在我们将用作CDN的网站上。
但是我想利用MVC ScriptBundle和StyleBundle类绑定到BundleTransformer.Less。
刚开始我尝试了一个测试脚本包,如下所示:
Bundle mainScript = new ScriptBundle("~/bundles/scripts/test.js", @CDNUrl + "lib/jquery/2.1.4/jquery-2.1.4.js");
bundles.Add(mainScript);
这里的问题是,如果我处于调试模式或优化已关闭,则不会输出任何脚本,因为我没有包含任何内容。如果我对它进行优化,只需在脚本标记中删除cdn链接。
理想情况下,我不希望在网站中包含脚本和样式(我可以将虚拟目录映射到它们在cdn上的位置)。
我想要做的是在CDN上构建我的所有捆绑包,并通过
链接到它们<script src="//cdn.etc.com/bunles/xyzSiteScripts.js"></script>
然而,最小化的链接生成如下:
<script src="/bundles/scripts/test2.js?v=SQINHU6JqPGF50s4ugWSC_sMpTAqiQhXWc8eDYzbyDg1"></script>
查询字符串上的v是缓存破坏者。我被认为如果我只是链接到他们,我将不得不手动更新所有我的链接与新的缓存破坏者每次我有机会。
有没有办法解决这个问题,我错过了?根据我的收集,如果我将捆绑移动到CDN本身,那么我将无法在我的剃刀模板中使用@Scripts或@Styles。