ASP.NET MVC Bundles 之學習筆記

来源:http://www.cnblogs.com/cby-love/archive/2016/04/08/5368632.html
-Advertisement-
Play Games

在網頁中,我們經常需要引用大量的javascript和css文件,在加上許多javascript庫都包含debug版和經過壓縮的release版(比如jquery),不僅麻煩還很容易引起混亂,所以ASP.NET MVC4引入了Bundles特性,使得我們可以方便的管理javascript和css文件 ...


在網頁中,我們經常需要引用大量的javascript和css文件,在加上許多javascript庫都包含debug版和經過壓縮的release版(比如jquery),不僅麻煩還很容易引起混亂,所以ASP.NET MVC4引入了Bundles特性,使得我們可以方便的管理javascript和css文件。

  原來,我們引用css和javascript文件我們需要這樣一個一個的引用:

  1. <scriptsrc="~/Scripts/jquery-1.8.2.js"></script>
  2. <scriptsrc="~/Scripts/jquery-ui-1.8.24.js"></script>
  3. <scriptsrc="~/Scripts/jquery.validate.js"></script>
  4. <linkhref="~/Content/Site.css"rel="stylesheet"/>

  當需要引用文件的數量較少時還好,但一旦每個頁面都需要引用較多文件時,會造成極大的不便,當我們想更換某個引用文件時,將會浪費大量的時間。發佈時,還要將一些庫替換成release版,比如上面的jquery-1.8.2.js所對應的jquery-1.8.2.min.js

  還好,現在我們可以使用Bundles特性:

  1. public class BundleConfig
  2. {
  3. public static void RegisterBundles(BundleCollection bundles)
  4. {
  5. bundles.Add(new ScriptBundle("~/bundles/jquery")
  6. .Include("~/Scripts/jquery-{version}.js"));
  7. bundles.Add(new ScriptBundle("~/bundles/jqueryui")
  8. .Include("~/Scripts/jquery-ui-{version}.js"));
  9. bundles.Add(new ScriptBundle("~/bundles/jqueryval")
  10. .Include("~/Scripts/jquery.unobtrusive*"
  11. ,"~/Scripts/jquery.validate*"));
  12. bundles.Add(new StyleBundle("~/Content/css")
  13. .Include("~/Content/site.css"));
  14. }
  15. }

  接著在Global.asax文件的Application_Start方法中調用BundleConfig.RegisterBundles方法:

  1. protected void Application_Start()
  2. {
  3. AreaRegistration.RegisterAllAreas();
  4. WebApiConfig.Register(GlobalConfiguration.Configuration);
  5. FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
  6. RouteConfig.RegisterRoutes(RouteTable.Routes);
  7. BundleConfig.RegisterBundles(BundleTable.Bundles);
  8. }

  在上面我們可以看到我們按照功能的不同,將不同的文件分到了相應的Bundle(Bundle就是包的意思),其中構造函數中的string參數是Bundle的名稱,Include函數是將參數相應的文件包含成一個Bundle。可以發現,對於jquery庫我們使用了這樣的名稱~/Scripts/jquery-{version}.js,其中{version}部分代表版本號的意思,MVC將會替我們在Scripts文件中尋找對應的"jquery-版本號.js"文件,並且在非debug模式下,MVC則會使用“jquery-版本號.min.js"文件。

  我們還看到我們使用了這樣的名稱~/Scripts/jquery.validate*的名稱,*是一個通配符,這就意味著Scripts文件夾下的所有首碼為jquery.validate的文件都將包含在同一個Bundle中。

  最後,我們可以View上使用Bundle來代替原來引用的方式:

  1. @Styles.Render("~/Content/css")
  2. @Scripts.Render("~/bundles/jquery")                                                                註:文章來自於網路

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • win10 ,本地連接無法識別網路 ,無線正常, 電腦診斷是:“此電腦上缺少一個或者多個網路協議” 1.手動設置ip 失敗 2.網卡卸載驅動 再安裝 失敗 3.網卡驅動更新 失敗 4.重置ie”高級設置 “ 附帶“刪除個性化” 附帶“ 退出電腦管家 ” 失敗 why... why... why.. ...
  • 很多項目使用的系統是centos或者redhat,最近有一個項目使用的系統竟然是阿裡雲unbantu,不知道他們負責人怎麼想的,明明有centos,非要用unbantu。抱怨到此,unbantu的學習是不可避免了,下麵開始記錄學習unbantu過程,持續更新。 1.首先學習如何安裝程式 可以看這個鏈 ...
  • sort命令 sort:文本排序,僅僅是對顯示文件的排序,而不影響源文件的順序,是根據ASSII碼 的字元升序來排列的。 -n:安裝數值大小從小到大排列 ,預設是升序。 -r:降序排列 ***** -t:指定欄位分隔符,表示按點號分隔域(類似awk -F,取欄位用$1,$2或cut的-d,取欄位f數 ...
  • uniq命令: 常見參數: -c,--count ***** 在每行旁邊顯示改行重覆出現的次數 -d,--repeated 僅顯示重覆出現的行,2次或2次以上的行,預設的去重包含1次。 例子: a.只對相鄰的相同行內容去重。 [root@nfs-server test]# cat test.txt ...
  • 恢復內容開始 最近看了園子里的大神分享的springnet框架的知識,感覺挺不錯的,自己閑下來也研究研究springnet。這幾天看了springnet容器的基礎篇IOC和AOP,也有點個人理解分享一下,記錄一下自己的學習筆記,歡迎大家提出問題一塊研究解決。 入門springnet首先瞭解一下什麼是 ...
  • 本文譯自 Nick Waggoner 的 "Understand what’s possible with the Windows UI Animation Engine",已獲原作者授權進行翻譯。更多有關 Windows UI、UWP 開發的文章,歡迎訪問我的博客源站:http://validvo ...
  • 我們都想追求完美 Every view in the app has an empty codebehind file, except for the standard boilerplate code that calls InitializeComponent in the class's co ...
  • 先上效果圖如下: 1、本公式自定義配置計算器的實現基於DataTable.Compute()的用法,該函數用法詳細參考文檔;本示例支持條件公式、計算公式的配置 2、界面樣式 3、界面腳本 4、界面HTML源碼 5、後臺代碼 6、擴展 在此基礎上可以進一步發揮的空間很大 》結合存儲設計如資料庫等,參數 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...