承上篇,因 SquishIt 不支援 .NET 4.5,改用內建 System.Web.Optimization** 進行打包與壓縮。以下是在 Web Forms 專案中的完整整合步驟:
Install-Package Microsoft.AspNet.Web.Optimization

using System.Web.Optimization;
public class BundleConfig {
public static void RegisterBundles(BundleCollection bundles) {
bundles.Add(new StyleBundle("~/bundles/news.css")
.Include("~/common/screen_base.css", "~/common/screen_news.css"));
bundles.Add(new ScriptBundle("~/bundles/news.js")
.Include("~/script/news_common.js", "~/script/detail.js", "~/script/share.js"));
}
}
BundleConfig.RegisterBundles(BundleTable.Bundles);
<head>
<title>IT新聞 - 博客園</title>
<%: System.Web.Optimization.Styles.Render("~/bundles/news.css") %>
<%: System.Web.Optimization.Scripts.Render("~/bundles/news.js") %>
</head>
<link href="/bundles/news.css?v=sWIyZt7YgHul_fjj5uctLQ6NK499bBwg7ev8KRgojN01" rel="stylesheet"/>
<script src="/bundles/news.js?v=h7kkNXn83HAKCJJjw2VNEzbW_hHG-e5sAPoNOs_2Cx41"></script>
| 特性 | SquishIt | System.Web.Optimization |
|---|---|---|
| 輸出方式 | 產生實體檔案至指定路徑 | 僅在記憶體動態生成 Bundle |
| 快取機制 | 靜態檔案由 IIS 直接服務 | 查詢字串版本號控制瀏覽器快取 |
| 部署權限 | 需寫入目錄權限 | 無需寫入權限,適合唯讀部署 |