本文来源于博客园,转载请注明出处

通过这篇文章这个回答,我们总结如下:

  • 浏览器针对一个域名,最多只会开启6个线程来加载文件,比如head中如果有7个引入文件(js文件或者css文件)的标签,则最后一个文件的网络请求只能排队,直到前6个加载完毕
  • 显然,通过CDN的方式,我们可以避开这个限制,因为CDN的域名跟我们站点的域名是不一样的(当然,除非你自建CDN)
  • 使用bundling和minification的好处1:将多个js或css文件合并成一个,减少网络加载
  • 使用bundling和minification的好处2:可以通过通配符的方式让一些js库(比如jquery这种频繁更新的库)配置更灵活,以方便将来的升级,避免了一处更改,处处更改
  • 配合使用Section、RenderSection和Styles.Render、Scripts.Render,我们可以在layout中将通用的资源文件用Styles.Render、Scripts.Render引入,而特定页面才有的使用RenderSection按需引入,在实际使用中可以不用Section,

    在layout布局页面中引入全局的js和css,在碎片页面中引入自己的js和css就行了,无非是页面没那么规则,js和css的引入会出现在div中,而不是在head中
  • 注意一点:bundles.Add时的虚拟路径写法,对css来说,必须以"/Content"开始,后面的bootstrapMarkdownCss可以自己随意命名,对js来说,则必须以"/bundles"开始,这只是区分了两种不同的资源类型,跟路径什么的没有一点关系没有,而且js和css资源的名称可以一样:
 //blog 添加和编辑页面的js
bundles.Add(new ScriptBundle("~/bundles/mdEdit").Include(
"~/Content/bootstrap-markdown/js/bootstrap-markdown.js",
"~/Content/bootstrap-markdown/locale/bootstrap-markdown.zh.js",
"~/Scripts/showdown.min.js",
"~/bundles/showdownjs",
"~/Content/highlight/highlight.pack.js",
"~/Scripts/my.js")); //blog 添加和编辑页面的css
bundles.Add(new StyleBundle("~/Content/mdEdit").Include(
"~/Content/bootstrap-markdown/css/bootstrap-markdown.min.css",
"~/Content/highlight/styles/agate.css"));

bootstrapMarkdownCss是自己定义的名字,但它前边必须是一个有效的目录,js的虚拟路径

  • 我们还可以结合CDN的方式来使用,而不是使用本地文件
public static void RegisterBundles(BundleCollection bundles)
{
//bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
// "~/Scripts/jquery-{version}.js")); bundles.UseCdn = true; //enable CDN support //add link to jquery on the CDN
var jqueryCdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"; bundles.Add(new ScriptBundle("~/bundles/jquery",
jqueryCdnPath).Include(
"~/Scripts/jquery-{version}.js")); // Code removed for clarity.
}

为了让程序更加健壮,我们还要考虑CDN请求失败的情况,这可以在客户端处理

</footer>

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

        <script type="text/javascript">
if (typeof jQuery == 'undefined') {
var e = document.createElement('script');
e.src = '@Url.Content("~/Scripts/jquery-1.7.1.js")';
e.type = 'text/javascript';
document.getElementsByTagName("head")[0].appendChild(e); }
</script> @RenderSection("scripts", required: false)
</body>
</html>

本文来源于博客园,转载请注明出处

关于ASP.NET MVC的js和css资源管理的更多相关文章

  1. Asp.Net MVC 合并js或css请求

    Step1:BundleConfig中注册 bundles.Add(new ScriptBundle("~/isValid").Include(  "~/Scripts/ ...

  2. 【MVC】 js,css 压缩

    [MVC] js,css 压缩 一. 引用 System.Web.Optimization.dll : 使用 Nuget ,在控制台输入 Install-Package Microsoft.AspNe ...

  3. [Asp.net Mvc]为js,css静态文件添加版本号

    方式一: 思路 string version = ViewBag.Version; @Scripts.RenderFormat("<script type=\"text/ja ...

  4. ASP.NET MVC+Vue.js实现联系人管理

    接触了一天vue.js,简单浏览了一本关于vue的电子书,就开始动手使用ASP.NET MVC和Vue.js开发一个联系人管理的小程序. 先看一下这个联系人管理的小程序的界面,也就是我们大概要实现什么 ...

  5. [转]HTML5 Day 4: Add Drop Down Menu to ASP.NET MVC HTML5 Template using CSS and jQuery

    本文转自:http://pietschsoft.com/post/2010/11/17/HTML5-Day-4-Add-DropDown-Menu-ASPNET-MVC-HTML5-Template- ...

  6. 期货大赛项目|十,MVC对js和css的压缩

    在Global.asax中添加两行代码 //默认在调试期间,不会启用js和css的压缩 //下面的语句确保了在调试期间也压缩css和js BundleTable.EnableOptimizations ...

  7. Asp.net 程序优化js,css合并与压缩

    访问时将js和css压缩并且缓存在客户端,采用的是Yahoo.Yui.Compressor组件还完成的,从这里可下载 创建一个IHttpHandler来处理文件 ) }; )              ...

  8. 本地Debug Asp.net MVC 无法加载css与js

    运行一个从网上download的一个MVC项目,运行的时候无法显示样式,js也报错. 检查路径也没有问题,后来在配置中把其中的一段配置去掉 <staticContent> <!-- ...

  9. Asp.Net MVC 中JS通过ajaxfileupload上传图片获取身份证姓名、生日、家庭住址等详细信息

    客户要求用身份证图片上传获取身份证的详细信息就下来研究了一下(现在的客户真的懒 身份证信息都懒得输入了哈哈...),经过慢慢研究,果然皇天不负有心人搞出来了.这个借助的是腾讯的一个SKD  腾讯优图云 ...

随机推荐

  1. Luogu P1092 虫食算

    题目描述 所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母.来看一个简单的例子: 43#9865#045 +8468#6633 44445509678 其中# ...

  2. RISC_CPU

    采用Top-Down设计方法,深入理解CPU的运作原理,本文参照夏宇闻老师的<Verilog 数字系统设计教程>,并做了相应的修改.仿真工具采用Mentor公司的ModelSim. 1.C ...

  3. 【前端】Vue2全家桶案例《看漫画》之七、webpack插件开发——自动替换服务器API-URL

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_7.html 项目github地址:https://github.com/shamoyuu/ ...

  4. Java中的Calendar方法

    /** * @Title:JavaDate.java * @Package:com.yhd.chart.model * @Description:Java中的Calendar总结 * @author: ...

  5. ios学习笔记(一)Windows7上使用VMWare搭建iPhone开发环境

    我们都知道开发iPhone等ios平台的移动应用时需要使用Mac本,但是Mac本都比较昂贵,所以我们可以采用Windows7上利用VMWare安装Mac操作系统的方法来模拟ios开发环境,达到降低成本 ...

  6. Java正则表达式语法

    Java正则表达式 表达式意义: 1.字符 x    字符 x.例如a表示字符a \\    反斜线字符.在书写时要写为\\\\.(注意:因为java在第一次解析时,把\\\\解析成正则表达式\\,在 ...

  7. linux下mount/unmount命令

    格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有:-a 安装在/etc/fstab文件中类出的所有文件系统.-f 伪装mount,作出检查设备和目录的样子,但并不真正挂载文件系 ...

  8. Linux显示进程状态

    Linux显示进程状态 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ top top - 19:16:36 up 45 min, 2 users, load ...

  9. .Net Core 1.0升级2.0(xproj项目迁移到.csproj )

    vs2015的创建的项目是以*.xproj的项目文件,迁移到vs2017需要如下准备: 1.安装好vs2017(废话) 2.下载最新的SDK和 .NET Core 2.0 Preview 1 Runt ...

  10. Python基础_如何用pip安装文件

    与其他语言相比,Python的一个很大的优势是由丰富的资源库,这就需我们按照自己的来安装文件和包.本节以在windows系统下安装pygame 为例来讲述一下安装步骤. 1. 检测python中有没有 ...