利用HtmlHelper压缩CSS,JS

 1 //自己拓展HtmlHelper      public static IHtmlString Script(this HtmlHelper helper, params string[] urls)
 2         {
 3             var bundleDirectory = "~/bundles/scripts/" + MakeBundleName(".js", urls);
 4             var thisBundle = new ScriptBundle(bundleDirectory).Include(urls);
 5             BundleTable.Bundles.Add(thisBundle); return Scripts.Render(bundleDirectory);
 6         }
 7         public static IHtmlString Style(this HtmlHelper helper, params string[] urls)
 8         {
 9             var bundleDirectory = "~/bundles/styles/" + MakeBundleName(".css", urls);
10             var thisBundle = new StyleBundle(bundleDirectory).Include(urls);
11             BundleTable.Bundles.Add(thisBundle);
12             return Styles.Render(bundleDirectory);
13         }
14         private static string MakeBundleName(string type, params string[] urls)
15         {
16             var bundleSections = new List();
17             foreach (var item in urls)
18             {
19                 bundleSections.Add(item.Replace("~/", "").Replace("/", "_").Replace(type, ""));
20             }
21             return string.Join(";", bundleSections.ToArray());
22         }

对HtmlHelper进行扩展过后,在前台页面进行,将文件并排包入包中,然后扩展的Helper会把这些CSS进行压缩

1 @section head{
2     @Html.Style("~/Content/alice/box/box.css",
3                 "~/Content/Alice/box/theme/orange.css",
4                 "~/Content/Alice/tab/tab.css",
5                 "~/Content/Benefits/CentralPurchasing.css",
6                 "~/Content/Benefits/Index.css")
7     }

经过压缩过后,浏览器仍然可以识别css和js的代码,并且减小了文件的大小,浏览速度大大的提高!

效果在项目发布后可以体现出来,所以记得配置IIS。

时间: 2024-08-25 12:18:19

利用HtmlHelper压缩CSS,JS的相关文章

vs合并压缩css,js插件——Bundler & Minifier

之前做了一个大转盘的抽奖活动,因为比较火,部分用户反馈看不到页面的情况,我怀疑js加载请求过慢导致,所以今天针对之前的一个页面进行调试优化. 首先想到的是对页面的js和css进行压缩优化,百度了下vs集成的插件,貌似没有很好的支持,自己在vs里找了一个非常满意的插件——Bundler & Minifier 这个vs插件下载地址:点我 插件功能说明: 1.合并多个css,js,html文件为一个单独的文件 2.保存源文件自动重新组合. 3.压缩css,js,html文件 等等...(其他我没用到,

flask前端优化:css/js/html压缩

1.先压缩再传输,可以减少传输的大小,减少传输时间,但是压缩需要时间,所以最终页面显示是快了还是慢了,需要比较 2.先看html压缩模块:pip install Flask-HTMLmin 压缩前:大小1.9M,完成时间1.20s 压缩后:大小1.3M,完成时间2.35s,反而时间更久了 2.再看css压缩和js压缩:pip install cssmin; pip install jsmin

Grunt:多个css,js,进行单独压缩

module.exports = function (grunt) { // 构建任务配置 grunt.initConfig({ //读取package.json的内容,形成个json数据 pkg: grunt.file.readJSON('package.json'), //压缩js uglify: { //文件头部输出信息 options: { banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd

Google Pagespeed,自动压缩优化JS/CSS/Image

Google Pagespeed,自动压缩优化JS/CSS/Image 浏览:257 发布日期:2015/07/05 分类:技术分享 关键字: Nginx Appache Pagespeed 自动压缩优化JS/CSS/Image 这个周末,把服务器的Nginx升级了下,并加入了Google Pagespeed模块 效果很明显: 页面加载的多个JS.CSS会自动合并压缩处理 发现新版本的Pagespeed能很好的发现处理用户加载的第三方JS库,如jQuery 发现新版本的lazyload_imag

Grunt的配置及使用(压缩合并js/css)

Grunt的配置及使用(压缩合并js/css) 安装 前提是你已经安装了nodejs和npm. 你能够在 nodejs.org 下载安装包安装.也能够通过包管理器(比方在 Mac 上用 homebrew,同一时候推荐在 Mac 上用 homebrew). 安装grunt CLI npm install -g grunt-cli 依照官方的说法.grunt-cli仅仅是为了在同一台机器上安装不同的grunt版本号,那么咱们先不去管他. 在项目中使用grunt 首先须要往项目里加入两个文件:pack

Grunt 自动化部署之css、image、javascript、html压缩Gruntfile.js配置

grunt.initConfig方法 用于模块配置,它接受一个对象作为参数.该对象的成员与使用的同名模块一一对应. 每个目标的具体设置,需要参考该模板的文档.就cssmin来讲,minify目标的参数具体含义如下: expand:如果设为true,就表示下面文件名的占位符(即*号)都要扩展成具体的文件名. cwd:需要处理的文件(input)所在的目录. src:表示需要处理的文件.如果采用数组形式,数组的每一项就是一个文件名,可以使用通配符. dest:表示处理后的文件名或所在目录. ext:

maven 关于构建版本号,以及在构建的时候压缩css,js并为这些文件追加版本号

最近负责公司一个项目框架的搭建,由于我们这边是后端团队,没有专业的前端工程师支持我们,我就在这个搭建过程中遇到了一些前端问题,给大家分享一下. 主要分享点: 构建项目时自动在css,js文件名中加入版本号     解决新上线版本时,浏览器可以更新缓存 构建项目自动压缩css,js资源文件     加快响应速度 解决第一个问题,是在构建的时候必须生成一个构建版本号,比如构建时刻的timestamp,正好在网上看到这样的插件,配置信息如下 <plugin> <groupId>org.c

Grunt 自动化部署之css、image、javascript、html压缩Gruntfile.js配置(学习转载)

grunt.initConfig方法 用于模块配置,它接受一个对象作为参数.该对象的成员与使用的同名模块一一对应. 每个目标的具体设置,需要参考该模板的文档.就cssmin来讲,minify目标的参数具体含义如下: expand:如果设为true,就表示下面文件名的占位符(即*号)都要扩展成具体的文件名. cwd:需要处理的文件(input)所在的目录. src:表示需要处理的文件.如果采用数组形式,数组的每一项就是一个文件名,可以使用通配符. dest:表示处理后的文件名或所在目录. ext:

【转载】Yui.Compressor高性能ASP.NET开发:自动压缩CSS、JS

在开发中编写的js.css发布的时候,往往需要进行压缩,以减少文件大小,减轻服务器的负担.这就得每次发版本的时候,对js.js进行压缩,然后再发布.有没有什么办法,让代码到了服务器上边,它自己进行压缩呢? 有两种办法: 第一种,在css.js请求到来的时候读取一下相对应的文件,进行压缩后返回.此方法可以通过在Global.asax的Application_BeginRequest的事件中,进行处理,也可以在web.config中注册一个httpHandler进行处理. 第二种是在程序启动的时候,