国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

詳解ASP.NET MVC下Bundle的使用方法

2024-07-10 12:54:27
字體:
來源:轉載
供稿:網友

我們在WEB開發使用的開發語言多種多樣,今天為大家介紹的是ASP.NET MVC下Bundle,它可以將js和css進行壓縮,下面就讓錯新技術頻道小編帶大家細細了解吧!

ASP.NET MVC中Bundle是用于打包捆綁資源的(一般是css和js),它是在全局文件Global.asax.cs中注冊Bundle,而注冊的具體實現默認是在App_Start文件夾的BundleConfig.cs中

public class MvcApplication : System.Web.HttpApplication{ protected void Application_Start() {  AreaRegistration.RegisterAllAreas();  FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);  RouteConfig.RegisterRoutes(RouteTable.Routes);  BundleConfig.RegisterBundles(BundleTable.Bundles); }}

BundleConfig.RegisterBundles(BundleTable.Bundles); 在應用程序啟用時注冊Bundle

public class BundleConfig{ // 有關綁定的詳細信息,請訪問 http://go.microsoft.com/fwlink/?LinkId=301862 public static void RegisterBundles(BundleCollection bundles) {  bundles.Add(new ScriptBundle("~/bundles/jquery").Include(     "~/Scripts/jquery-{version}.js"));  bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(     "~/Scripts/jquery.validate*"));  // 使用要用于開發和學習的 Modernizr 的開發版本。然后,當你做好  // 生產準備時,請使用 http://modernizr.com 上的生成工具來僅選擇所需的測試。  bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(     "~/Scripts/modernizr-*"));  bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(     "~/Scripts/bootstrap.js",     "~/Scripts/respond.js"));  bundles.Add(new StyleBundle("~/Content/css").Include(     "~/Content/bootstrap.css",     "~/Content/site.css")); }}

為了便于說明,這里在HomeController下新建一個Action,如下:

public ActionResult BundleTest(){ return View();}

這里以使用Bootstrap為例,在視圖中使用@Styles.Render() 和@Scripts.Render() 引入css和js,參數是在BundleConfig注冊的名稱

@{ Layout = null;}

@Styles.Render("~/Content/css")

@Scripts.Render("~/bundles/jquery", "~/bundles/bootstrap")

瀏覽頁面,查看源代碼,可以看到:

bundles.Add(new StyleBundle("~/Content/css").Include(      "~/Content/bootstrap.css",      "~/Content/site.css")); 

由于在BundleConfig.cs中注冊上面的Bundle,@Styles.Render("~/Content/css")渲染時是引入~/Content/bootstrap.css和~/Content/site.css,js的渲染同理
為了驗證是否真正引入了BootStrap的css與js資源,這里添加了一些簡單的BootStrap示例代碼,如下:

@{ Layout = null;}

@Styles.Render("~/Content/css")

? 2017 Zhong.

@Scripts.Render("~/bundles/jquery", "~/bundles/bootstrap")

前臺瀏覽看效果(當瀏覽器足夠大時是橫向平鋪的,如果將瀏覽器縮小,則是垂直平鋪,示例中的表單部分最能體現出來):

改進

上面的Bundle是引入了未壓縮的css和js資源,但在實際應用中,出于為了減輕服務器負載等原因,需要引入壓縮版的資源(一般是在未壓縮的命名后面加上min來命名,如jquery.js的壓縮版【有些叫法是精簡版】是jquery.min.js)
于是修改BundleConfig.cs

重新編譯,再次瀏覽剛才的頁面,這時發現引入了壓縮版的資源(css/js)

注:由于示例時使用了ASP.NET MVC 5( .Net Framework 4.5),而在.net framework 4中的asp.net mvc 4可能會有下面的情況:

在頁面查看源代碼時發現腳本缺少引入~/Scripts/bootstrap.min.js,這是asp.net mvc 4使用的System.Web.Optimization.dll默認使用了忽略規則*.min.js,這時可以在BundleConfig.cs的RegisterBundles中清除忽略規則

該解決方法一是通過反編譯System.Web.Optimization.dll并結合反編譯的代碼得出來的,另外也可以參考這個鏈接

另外就是在部署生產環境時發現無效,因為生產環境不再是debug模式,此時需要設置:

本文是錯新技術頻道小編為大家帶來的詳解ASP.NET MVC下Bundle的使用方法,大家要經常溫習哦,錯新技術頻道小編的介紹都是很清晰整潔的,對初學者有巨大的幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南汇区| 黎川县| 明星| 页游| 大足县| 三门峡市| 和平区| 开鲁县| 昭觉县| 荃湾区| 敖汉旗| 自贡市| 巴东县| 丽水市| 灵石县| 洛浦县| 沈丘县| 同德县| 渝中区| 枣强县| 平邑县| 凤翔县| 凉城县| 文水县| 永登县| 清涧县| 苗栗县| 赤壁市| 沅江市| 浦县| 城口县| 繁峙县| 龙山县| 金秀| 萝北县| 武山县| 漾濞| 顺义区| 高青县| 安吉县| 巴林右旗|