在Web项目中,js、css合并压缩,不仅有利于减少Http请求数量、减少宽带资源占用,还能有效的管理各种js、css的引入,使整个项目更加有序。而对于访问用户来说,其更大的好处是增加了页面的打开速度,大大提升了用户体验。

所以,互联网各类网站,会通过各种手段,对静态文件进行合并、压缩,动静分离,使用CDN加速等。以此达到网站访问速度的优化。

everycoding.com官网使用的是Java语言开发。因此使用了Java 方面的第三方Jar:wro4j来压缩Js、CSS。本文主要介绍Java Web程序是如何使用wro4j合并、压缩js、Css等静态资源的。

1.    首先下载wro4j-core.1.6.2.jar,maven管理的项目可使用如下依赖获取架包。

ro.isdc.wro4j

wro4j-core

1.6.2

2.    配置Js、CSS合并策略。新建wro.xml文件,放置在WEB-INF目录下面

即:/src/main/webapp/WEB-INF/wro.xml。以everycoding官网代码为例,配置详情如下:

xsi:schemaLocation="http://www.isdc.ro/wro wro.xsd">

/static/css/front.css

/static/js/jquery.js

/static/js/jquery.paging.min.js

/static/js/front/global.js

/static/js/front/search.js

/static/css/front.css

/static/css/comment/comment.css

/static/plugins/syntaxhighlighter/shCore.css

/static/js/front/coding.js

3.    在视图页面引入合并后的js、css.详情可见everycoding.com站点的引入方式

4.    在web.xml中配置wro4j的过滤器,使js、css合并策略生效。代码配置方式如下:

其中,/static/是Everycoding官网放置静态文件的目录,具体配置请参考自身项目

WebResourceOptimizer

ro.isdc.wro.http.WroFilter

debug

true

disableCache

true

WebResourceOptimizer

/static/*

5.    Web.xml中配置的wro4j属性Debug的作用

Debug:在开发环境,一般设置为true。生产环境设置为false

那么在开发环境中,将debug设置为true有什么好处呢?

原因是:当debug为false时,视图中引入的js、css都是合并压缩过的代码,尤其是Js,不利于我们开发过程中进行断点调试等工作。

如果,我们想在开发过程中,断点调试Js代码,需要将Debug设置为true。同时,视图引入的js代码部分,需要加上参数:minimize=false。表明:合并,但是不压缩js。

如:/static/js/basic.js?minimize=false

需要注意的时,当debug=false时,这个参数的作用将失效。Js、Css在生成环境一定是压缩的状态。

6.    wro4j相关配置属性详解

属性

默认值

描述

debug

true

true代表开发环境,false代表生成环境

minimizeEnabled

true

是否压缩资源

gzipResources

true

True,则表明response将开启gzip

resourceWatcherUpdatePeriod

0

怎样的频率静态资源更新被监控,0表明不监控。      当监控到资源有更新时,则静态资源的缓存失效。      (since    1.4.8)

resourceWatcherAsync

false

对异步更新的静态资源的监控,当属性resourceWatcherUpdatePeriod 配置大于0时,这个值才有意义 (since 1.7.3)

cacheUpdatePeriod

0

怎么样的频率刷新缓存。0表示不刷新静态缓存。

modelUpdatePeriod

0

怎样的频率刷新wro.xml合并压缩策略。0表示不刷新。

header

见官网说明

disableCache

false

是否禁用静态资源缓存1.7.6之后的版本已废弃

parallelPreprocessing

false

是否开启预处理器并行执行,以提高效率

connectionTimeout

2000

外部资源访问的超时时间,1.4.5版本后有效

managerFactoryClassName

N/A

默认BaseWroManagerFactory管理

encoding

UTF-8

设置读写编码格式

ignoreMissingResources

true

为false时,丢失的资源会引发异常产生。True则会忽略这些异常。

ignoreEmptyGroup

true

为false时,空引入链接将失败。True,则忽略。1.4.5之后版本有效。

ignoreFailingProcessor

false

为true时,有问题的资源将以原生的方式引入。      1.4.7版本后有效。

cacheGzippedContent

false

缓存是否使用gzipped的静态内容. since 1.4.4之后版本有效

jmxEnabled

true

是否关闭JMX.

mbeanName

wro4j

JMX    console 见官网

js合并压缩 java_Java Web程序使用wro4j合并、压缩js、css等静态资源相关推荐

  1. java Web程序使用wro4j合并、压缩js、css等静态资源

    在Web项目中,js.css合并压缩,不仅有利于减少Http请求数量.减少宽带资源占用,还能有效的管理各种js.css的引入,使整个项目更加有序.而对于访问用户来说,其更大的好处是增加了页面的打开速度 ...

  2. java css js 合并_java Web程序使用wro4j合并、压缩js、css等静态资源

    在Web项目中,js.css合并压缩,不仅有利于减少Http请求数量.减少宽带资源占用,还能有效的管理各种js.css的引入,使整个项目更加有序.而对于访问用户来说,其更大的好处是增加了页面的打开速度 ...

  3. golang打包HTML为Android,使用Go开发Web服务,并打包html/js/css等静态资源文件

    Go的高性能,使它天生适合开发io方面的服务,Web服务当然不再话下.同时,Go编译后生成的单文件不是字节码,而是对应平台的机器码,因此它效率更高.资源占用更低. 为了更好的进程程序管理,移动程序时更 ...

  4. PHP网站开启gzip压缩,PHP网站程序中开启Gzip压缩的两种方法

    // htaccess RewriteRule (.*.css$|.*.js$) gzip.php?$1 [L] //项目根路径 define('ABSPATH', dirname(__FILE__) ...

  5. SpringBoot中的html页面访问不到js,css等静态资源问题解决方案

    首先贴上项目目录结构 当我在index.html中访问css中的index.css时,发现报404,路径是http://localhost:8080/static/css/index.css < ...

  6. web静态资源访问规则||webjars的访问配置——webjars是maven库里面对css js image打的一个jar包

    Html css js image  txt   web项目中 放在 Webapp 在springboot项目中  静态资源放置的位置 Springboot默认的静态资源目录 (1)在src/main ...

  7. Node.js之十大Web框架

    Node.js之十大Web框架 之前接触过Node.js是因为好奇大前端越来越能干了,连我后台的饭碗都要抢了,太嚣张了,于是我想打压打压它,然后就这样接触它了. 再到后来是因为Settings-Syn ...

  8. jsp日报系统+mysql_工作日报系统软件(运行web程序+说明) 日报管理系统 - 下载 - 搜珍网...

    文件名大小更新时间 工作日报系统软件(运行web程序+说明)\工作日报系统软件\ribao\app\add.html29272015-01-16 工作日报系统软件(运行web程序+说明)\工作日报系统 ...

  9. webpack静态资源地址注入html,Webpack4+ 多入口程序构建

    欢迎关注富途web开发团队,缺人从众 其实,说实话这篇文章的由来也是有很多的原因在里面的.在这之前,我也做过不少的项目.有新的项目,也有旧的项目.通过对旧项目的不断研究,改进.再结合自己的理解,将新的 ...

最新文章

  1. python3编译caffe错误:cannot find -lboost_python3
  2. 第四章 数学知识【完结】
  3. VB.NET程序如何巧妙释放内存
  4. 机器物联网的四大价值流
  5. 机器学习1---基本概念
  6. 82相似标准形03——不变因子、行列式因子、相抵标准形的唯一性、用求行列式因子法求标准形
  7. 20145316《信息安全系统设计基础》期中总结
  8. magento -- 如何在magento中进行产品的批量上传
  9. 关于 wxWindows
  10. 《现代操作系统(中文第四版)》课后习题答案 第一章 引论
  11. 青鸟云课堂_青鸟云课堂
  12. 6.泛型方法:什么是泛型方法???
  13. 冯诺依曼结构和哈佛结构
  14. 关于脏读,不可重复读,幻读的理解
  15. 方差分析(1) ——单因素方差分析及Excel示例
  16. 机器学习模型的超参数优化用于分子性质预测
  17. [转载]tensorflow二次开发
  18. html怎么加深字体颜色,我打印网页的字的颜色非常浅,怎样才能加深? – 手机爱问...
  19. Xcode9 xcodebuild export plist 配置
  20. 双线性变换法设计原型低通为椭圆型的数字IIR高通滤波器

热门文章

  1. uniapp图片或文件的预览和下载,兼容ios+安卓+浏览器
  2. Vmware相关技巧
  3. Stata:手动计算和图示边际效应
  4. 基于 Vue 和 TS 的 Web 移动端项目实战心得
  5. 七夕送什么给女朋友好?2022年送女朋友的七夕礼物推荐
  6. python双星号什么运算_Python3基础 双星号 求一个数的几次幂
  7. 7.15、HTML5画布(矩形和圆形)
  8. php获取微信订阅号的文章图片
  9. mongodb aggregate按日期分组统计及spring mongo实现
  10. Typecho的背景图片API