一、FreeMarker实现对js和css压缩

1、代码压缩理解:实际上就是将原有的文本中无用的注释、空行、空格去掉来压缩文件的大小。进行js和css压缩会带来如下好处:
1)减小了文件的体积,减少文件占用的内存;
2)减小了网络传输量和带宽占用;
3)减小了服务器的处理的压力;
4)提高文件加载、页面的渲染速度,提高性能能;

2、ftl页面中实现对js和css文件压缩
1)可在vars.dev.properties文件中进行如下配置:
scriptCompress=true
scriptConcat=true
scriptMinSuffix=-min

2)主页面引入:(main.ftl)
<#import "common/yaSuo.ftl" as ys>
<@ys.cssurl url= ["css/search/search","css/common/main"] />
<@ys.jsurl  url= ["js/search/search","js/common/main"]/>

3)公用压缩文件:yaSuo.ftl
<#-- 静态资源压缩、合并-->
<#ftl strip_whitespace=true>
<#-- jsurl 格式化js的url加入版本号,用list形式可一次可以传入多个 -->
<#macro jsurl  url=[] scriptCompress='${scriptCompress}' scriptConcat='${scriptConcat}'>
    <#if scriptConcat == 'true'>
        
    <#else>
        <#list url as js>
            
        
    

<#-- cssurl 格式化css的url加入版本号,用list形式可一次可以传入多个 -->
<#macro cssurl url=[] cssCompress='${cssCompress}' cssConcat='${cssConcat}'>
    <#if cssConcat =='true'>
        
                ${css}${scriptMinSuffix}.css
            <#else>${css}.css
            
            <#if css_has_next>
            ,
            
        ?${version}"/>
    <#else>
        <#list url as css>
            ${css}${scriptMinSuffix}.css?${version}
                <#else>${css}.css?${version}
            
            '
            />
        
    


代码理解:

1)ftl指令详解:http://freemarker.foofun.cn/ref_directive_ftl.html
    strip_whitespace: 这将开启/关闭 空白剥离。 合法的值是布尔值常量 true 和 false (为了向下兼容,字符串 "yes","no", "true","false" 也是可以的)。 默认值(也就是当你不使用这个参数时)是依赖于程序员对 FreeMarker 的配置, 但是对新的项目还应该是 true。
    gt: greater than 大于
    gte: greater than or equal 大于等于
    lt: less than 小于
    lte: less than or equal 小于等于

2)macro指令的小示列:
模板文件:
<#macro list title items>
 

${title?cap_first}:
 


        <#list items as x>
         
  • ${x?cap_first}
       
     


<@list items=["mouse", "elephant", "python"] title="Animals"/>

输出结果:

Animals:


     
  • Mouse
     
  • Elephant
     
  • Python


转载于:https://www.cnblogs.com/jiarui-zjb/p/10596826.html

你可能感兴趣的:(一、FreeMarker实现对js和css压缩)