Asp.net-Mvc-3
從縮小中跳過單個文件?
我正在嘗試使用 ASP.Nets BundleTable 來優化一些 javascript 文件,但遇到了一個問題,即在縮小程式碼時特定外掛(jQuery-Timepicker)無法工作。見這裡。
捆綁程式碼目前類似於:
// Add our commonBundle var commonBundle= new Bundle("~/CommonJS" + culture.ToString()); // JQuery and related entries. commonBundle.Include("~/Scripts/jquery-1.7.2.js"); commonBundle.Include("~/Scripts/jquery-ui-1.8.22.js"); commonBundle.Include("~/Scripts/jquery.cookie.js"); commonBundle.Include("~/Scripts/jquery-ui/jquery-ui-timepicker-addon.js"); // This is the one that does not work when bundled // JS Transformer commonBundle.Transforms.Add(new JsMinify()); BundleTable.Bundles.Add(commonBundle);如果我刪除該
jquery-ui-timepicker-addon.js文件,然後將其單獨包含在我的網頁中,則它可以正常工作。(否則我得到Uncaught TypeError: undefined is not a function錯誤)。我想知道我是否可以以某種方式設置我的捆綁程式碼以跳過縮小這個文件(但它仍然包含在捆綁中)?我一直在環顧四周,但沒有提出任何解決方案。
所以問題是所有文件都捆綁在一起,然後整個捆綁包被最小化。因此,您不會輕易地跳過一個文件的縮小。執行此操作的最佳方法可能是創建一個新的轉換,該轉換附加了您希望未縮小的該文件的內容。然後你會將此轉換附加到你註冊的 ScriptBundle 中:
commonBundle.Transforms.Add(new AppendFileTransform(""~/Scripts/jquery-ui/jquery-ui-timepicker-addon.js""));AppendFileTransform 只是將文件的內容附加到捆綁的響應中。您將不再顯式地將時間選擇器包含在捆綁包中,而是將其包含在此轉換中,這將有效地為您提供您正在尋找的行為,因為 JsMinify 轉換將首先執行並縮小捆綁包,然後您將添加最後你想要的文件未縮小。