佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > asp.net Bundle功能擴(kuò)展

asp.net Bundle功能擴(kuò)展

熱門標(biāo)簽:阿里云 服務(wù)器配置 電子圍欄 銀行業(yè)務(wù) 科大訊飛語(yǔ)音識(shí)別系統(tǒng) Mysql連接數(shù)設(shè)置 團(tuán)購(gòu)網(wǎng)站 Linux服務(wù)器
前言
新建Asp.net MVC4項(xiàng)目的時(shí)候,在Global.asax.cs里面發(fā)現(xiàn)多了一句代碼
BundleConfig.RegisterBundles(BundleTable.Bundles)
google了以后終于弄清楚了這個(gè)的作用,發(fā)現(xiàn)這個(gè)東西確實(shí)非常實(shí)用,且功能強(qiáng)大,能夠壓縮合并js和CSS,但是目前的使用起來(lái)不是特別好,如果添加js或者css文件的話,需要修改BundleConfig的代碼。
這里我自己簡(jiǎn)單修改了BundleConfig,對(duì)這個(gè)進(jìn)行簡(jiǎn)單的擴(kuò)展。
下面貼出代碼
先貼配置文件BundleConfig.xml(文件放在網(wǎng)站目錄下路徑見(jiàn)代碼中變量BundleConfigPath)
復(fù)制代碼 代碼如下:

?xml version="1.0" encoding="utf-8" ?>
root>
Scripts>
Script Path="~/bundles/jquery">
File>~/Scripts/jquery-{version}.js/File>
/Script>
Script Path="~/bundles/jqueryui">
File>~/Scripts/jquery-ui-{version}.js/File>
/Script>
Script Path="~/bundles/jqueryval">
File>~/Scripts/jquery.unobtrusive*/File>
File>~/Scripts/jquery.validate*/File>
/Script>
Script Path="~/bundles/modernizr">
File>~/Scripts/modernizr-*/File>
/Script>
Script Path="~/bb/aa">
File>~/Views/Home/addda.js/File>
/Script>
/Scripts>
Styles>
Style Path="~/Content/themes/base/css">
File>~/Content/themes/base/jquery.ui.core.css/File>
File>~/Content/themes/base/jquery.ui.resizable.css/File>
File>~/Content/themes/base/jquery.ui.selectable.css/File>
File>~/Content/themes/base/jquery.ui.accordion.css/File>
File>~/Content/themes/base/jquery.ui.autocomplete.css/File>
File>~/Content/themes/base/jquery.ui.button.css/File>
File>~/Content/themes/base/jquery.ui.dialog.css/File>
File>~/Content/themes/base/jquery.ui.slider.css/File>
File>~/Content/themes/base/jquery.ui.tabs.css/File>
File>~/Content/themes/base/jquery.ui.datepicker.css/File>
File>~/Content/themes/base/jquery.ui.progressbar.css/File>
File>~/Content/themes/base/jquery.ui.theme.css/File>
/Style>
Style Path="~/Content/css">
File>~/Content/site.css/File>
/Style>
/Styles>
/root>

代碼文件:BundleConfig.cs
復(fù)制代碼 代碼如下:

public class BundleConfig
{
public static string BundleConfigPath = "~/Config/BundleConfig.xml";
/// summary>
/// Register Bundles From XML
/// /summary>
/// param name="bundles">/param>
public static void RegisterBundles(BundleCollection bundles)
{
XmlDocument doc = new XmlDocument();
doc.Load(HttpContext.Current.Server.MapPath(BundleConfigPath));
XmlNode root = doc.DocumentElement;
// Regester Script
XmlNodeList ScriptList = root.SelectNodes("Scripts/Script");
if (ScriptList != null ScriptList.Count > 0)
{
foreach (XmlNode node in ScriptList)
{
string path = CheckNodeRegedit(node);
if (string.IsNullOrEmpty(path)) continue;
var bound = new ScriptBundle(path);
Liststring> files = GetFilesFormNode(node);
if (files.Count > 0)
{
bound.Include(files.ToArray());
bundles.Add(bound);
}
}
}
// Regester Style
XmlNodeList StyleList = root.SelectNodes("Styles/Style");
if (StyleList != null StyleList.Count > 0)
{
foreach (XmlNode node in StyleList)
{
string path = CheckNodeRegedit(node);
if (string.IsNullOrEmpty(path)) continue;
var bound = new StyleBundle(path);
Liststring> files = GetFilesFormNode(node);
if (files.Count > 0)
{
bound.Include(files.ToArray());
bundles.Add(bound);
}
}
}
doc = null;
}
/// summary>
/// 如果內(nèi)容為空則不添加
/// /summary>
/// param name="node">/param>
/// returns>/returns>
private static Liststring> GetFilesFormNode(XmlNode node)
{
Liststring> files = new Liststring>();
foreach (XmlNode nodeFile in node.ChildNodes)
{
if (!string.IsNullOrEmpty(nodeFile.InnerText.Trim()))
files.Add(nodeFile.InnerText.Trim());
}
return files;
}
/// summary>
/// 檢查注冊(cè)的Node
/// /summary>
/// param name="node">/param>
/// returns>/returns>
private static string CheckNodeRegedit(XmlNode node)
{
XmlAttribute pathAtt = node.Attributes["Path"];
string path = string.Empty;
if (pathAtt == null || string.IsNullOrEmpty(pathAtt.Value.Trim()) || node.ChildNodes.Count == 0)
return string.Empty;
else
return pathAtt.Value.Trim();
}
}
您可能感興趣的文章:
  • 使用asp.net MVC4中的Bundle遇到的問(wèn)題及解決辦法分享
  • 基于Asp.Net MVC4 Bundle捆綁壓縮技術(shù)的介紹
  • ASP.NET MVC Bundles 用法和說(shuō)明(打包javascript和css)
  • ASP.NET MVC中使用Bundle打包壓縮js和css的方法
  • Asp.net程序優(yōu)化js、css實(shí)現(xiàn)合并與壓縮的方法
  • 淺談ASP.NET中MVC 4 的JS/CSS打包壓縮功能
  • Asp.net MVC下使用Bundle合并、壓縮js與css文件詳解

標(biāo)簽:蚌埠 大理 棗莊 衡水 廣元 江蘇 萍鄉(xiāng) 衢州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《asp.net Bundle功能擴(kuò)展》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    湖北省| 新兴县| 常山县| 文山县| 静海县| 易门县| 乐至县| 禹城市| 崇礼县| 德昌县| 周宁县| 措勤县| 正镶白旗| 林周县| 泽普县| 淄博市| 上思县| 昌平区| 金坛市| 中江县| 镇宁| 黑山县| 龙口市| 六枝特区| 泽州县| 余干县| 瑞昌市| 高雄市| 阳高县| 仁怀市| 鹤峰县| 长治市| 藁城市| 礼泉县| 韶关市| 尖扎县| 苏尼特右旗| 临漳县| 嘉善县| 砚山县| 湟源县|