wro4j是一个Web资源优化工具。众所周知,到服务器加载一个大的文件比加载两个小的文件快,因为会增加HTTP交互的次数并且大部分浏览器在任何时候对于同一个服务器,只保持两个连接。开发wro4j项目的目的是减少加载一个页面的请求次数和传输的数据量.
WRO4j最大限度地减少和压缩CSS和JavaScript等web资源,WRO4j可以在编译时配置一个非常有用的API - 与适当的maven插件一起运行时。
有两种办法使用,一个在运行时混合,一个是使用Maven编译时混合。
运行时混合:
第一步在web.xml加入wrofilter:
<filter>
<filter-name>WebResourceOptimizer</filter-name>
<filter-class>
ro.isdc.wro.http.WroFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>WebResourceOptimizer</filter-name>
<url-pattern>/wro/*</url-pattern>
</filter-mapping>
第二步在WEB-INF 目录下配置一个wro.xml文件,如下:
<groups xmlns="http://www.isdc.ro/wro">
<group name="all">
<css>/asset/*.css</css>
<js>/asset/*.js</js>
</group>
</groups> |
在页面使用:
<link rel="stylesheet" type="text/css" href="/wro/all.css" />
这种方式会耗费一些服务器CPU。
编译时混合,使用Maven,需要多Maven熟悉:
wro.xml文件如下
<?xml version="1.0" encoding="UTF-8"?>
<groups xmlns="http://www.isdc.ro/wro">
<group name="javaonly-base-scripts">
<js minimize="false">/scripts/jquery-1.6.1.min.js</js>
<js minimize="false">/scripts/jqXMLUtils.pack.js</js>
<js minimize="false">/scripts/cufon/cufon-yui.js</js>
<js minimize="false">/scripts/cufon/font.js</js>
<js minimize="false">/scripts/cufon/replace.js</js>
</group>
<group name="javaonly-scripts">
<js>/scripts/scriptFile1.js</js>
<js>/scripts/scriptFile2.js</js>
</group>
<group name="javaonly-debugging">
<js minimize="false">/scripts/scriptDebug1.js</js>
<js minimize="false">/scripts/scriptDebug1.js</js>
</group>
<group name="javaonly-styles">
<css>/styles/screen/base.css</css>
<css>/styles/screen/layout.css</css>
<css>/styles/screen/content.css</css>
<css>/styles/screen/menu.css</css>
<css>/styles/screen/footer.css</css>
<css>/styles/screen/login.css</css>
<css>/styles/screen/tooltip.css</css>
<css>/styles/screen/homepage.css</css>
</group>
</groups>
</pre> |
然后在pom.xml中增加wro4j插件:“
<plugin>
<groupId>ro.isdc.wro4j</groupId>
<artifactId>wro4j-maven-plugin</artifactId>
<version>${wro4j.version}</version>
<executions>
<execution>
<id>optimize-web-resources</id>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<configuration>
<ignoreMissingResources>false</ignoreMissingResources>
<jsDestinationFolder>
${project.build.directory}/${project.build.finalName}/scripts/wro/</jsDestinationFolder>
<cssDestinationFolder>
${project.build.directory}/${project.build.finalName}/styles/wro/</cssDestinationFolder>
<wroManagerFactory>
ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory</wroManagerFactory>
</configuration>
/plugin> |
最后我们在页面可以得到最小化的资源,如:
<link rel="stylesheet" type="text/css" href="/wro/javaonly-styles.css" /> |
下载地址:https://github.com/alexo/wro4j/