Asp.net-Mvc
僅在 MVC4 BundleConfig 中的縮小腳本
我在 BundleConfig 中添加以下 ScriptBundle:
bundles.Add(new ScriptBundle("~/bundles/javascript").Include( "~/Scripts/jquery-1.*", "~/Scripts/load-image.min.js", "~/Scripts/bootstrap.*", "~/Scripts/bootstrap-image-gallery.*", "~/Scripts/my.global.js"));這在我的 _Layout.cshtml 末尾被引用為:
@Scripts.Render("~/bundles/javascript")調試時,我注意到此腳本渲染的輸出是:
<script src="/Scripts/jquery-1.8.2.js"></script> <script src="/Scripts/bootstrap.js"></script> <script src="/Scripts/bootstrap-image-gallery.js"></script> <script src="/Scripts/my.global.js"></script>注意到 load-image.min.js 腳本失去了嗎?無論我是否在調試,我想要的是使用相同的縮小腳本。在發布條件下,腳本包含在捆綁的 JS 文件中。
我假設它看到了“最小”,尋找一個未縮小的版本,沒有找到一個,然後決定什麼是最好的就是完全忽略它。傑出的。如果我複制 load-image.min.js,將其命名為 load-image.js,然後在 BundleConfig 中將其引用為“load-image.*”,我發現它包含在兩種配置中,但必須這樣做有什麼意義去做?
我想我在這裡遺漏了一些東西。我沒有未縮小的版本,坦率地說我不在乎。它由我的 Bootstrap 圖片庫外掛使用,僅此而已。有什麼想法嗎?
此行為已在 1.1.0-alpha1 版本中得到改進(修復)。我們將所有舊的預設忽略列表條目移動到一個新的 DirectoryFilter 忽略列表中,該列表僅在包含 *.js 之類的搜尋模式時使用,這是此功能的原始意圖。因此,當您明確包含單個文件時,這應該不再是問題。
注意:這可能仍然是一個問題的一個地方是,如果您嘗試包含類似 jquery-{version}.min.js 的內容。
有
ignoreList,如果需要,您可以清除它,它看起來像:public static void AddDefaultIgnorePatterns(IgnoreList ignoreList) { if (ignoreList != null) { ignoreList.Ignore("*.intellisense.js"); ignoreList.Ignore("*-vsdoc.js"); ignoreList.Ignore("*.debug.js", OptimizationMode.WhenEnabled); ignoreList.Ignore("*.min.js", OptimizationMode.WhenDisabled); ignoreList.Ignore("*.min.css", OptimizationMode.WhenDisabled); return; } else { throw new ArgumentNullException("ignoreList"); } }更多詳細資訊:ASP.NET 捆綁和縮小的高級選項