我正在尝试将我所有的 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 本身,那么我将无法在我的 razor 模板中使用 @Scripts 或 @Styles。