Try   HackMD

ASP.NET MVC 打包(Bundling)及壓縮(Minification)功能

提醒,mvc core 中預設沒有bundle了,需要額外下載套件,可以參考這篇
軟體主廚的程式料理廚房-[食譜好菜] BundleConfig 在 ASP.NET Core 還存在嗎?

問題

常常有 user 遇到問題 因為js沒有更新到,需要按重新整理
但可以在 script src="my.js?q=當下日期" 這樣就100%更新了,可是這樣變成每次user都重新下載js,浪費頻寬速度又慢,有沒有辦法自動生成?

這邊可以使用 asp.net MVC 的 bundle 功能,來完成這個目標,還能順便把js css壓縮

MVC提供方便的Bundling功能,可以把css、js打包壓縮,只要兩個步驟就完成了

1.在BundleConfig.cs設定好所有要打包的東西,

bundles.Add(new StyleBundle("~/Content/css").Include(
                            "~/Content/site.css",
                            "~/Content/font-awesome.min.css"
                           ));
bundles.Add(new ScriptBundle("~/bundles/jquerytimepicker").Include(
   "~/Scripts/jquery-ui-timepicker-addon.js", 
   "~/Scripts/jquery-ui-timepicker-zh-TW.js"
  ));

2.在頁面上使用

@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/jquerytimepicker")

就可以了

要注意的是, @Styles.Render("~/Content/css")的結尾必須使用/css,才能正常執行

補充,有時候可能,若是想檢查是否有正常載入各個檔案,可以在BundleConfig.cs中,將EnableOptimizations 設定為false,網頁上就會顯示未壓縮的檔案狀態

// 將 EnableOptimizations 設為 false 以進行偵錯。如需詳細資訊,
BundleTable.EnableOptimizations = false;

參考資料:

tags: 程式設計