Grails 2.0的Resources插件简介

1.概述

Resources插件作为Grails2.0的资源管理框架,主要解决:

  • Web应用的性能调优
  • 资源间的依赖性导致加载顺序正确性问题
  • Javascript的延时加载
  • 标准化的Grails插件资源暴露方式
  • 可扩展的资源优化处理过程
  • 资源的重复加载
  • 开发模式和生产模式的一致性

2.概念

  • 资源(Resources):这里主要指用于渲染应用视图的静态资源,包括:CSS、Javascript和图片等,如:
modules = {
    core {
        dependsOn 'jquery, utils'
        defaultBundle 'ui'        resource url:'/js/core.js', disposition: 'head'
        resource url:'/js/ui.js'
        resource url:'/css/main.css', 
        resource url:'/css/branding.css'
        resource url:'/css/print.css', attrs:[media:'print']
    }    utils {
        dependsOn 'jquery'        resource url:'/js/utils.js' 
    }    forms {
        dependsOn 'core,utils'
        defaultBundle 'ui'        resource url:'/css/forms.css'
        resource url:'/js/forms.js'
    }
}
  • 模块(Modules):在Resources插件中模块具有名字,用于包含1个或多个的资源,GSP的标签可用于表示页面需要哪些模块,如:<r:requiremodules="jquery-ui,blueprint"/>
  • 模块依赖(Moduledependencies):指定模块依赖意味着配置模块依赖哪些模块后就不需要关心资源的加载顺序,资源插件会根据依赖决定正确的加载顺序
  • 映射器(Mappers):资源映射器是参与资源处理过程的Grails的Artefact,如:修改、移动、更名压缩以及设置缓存等,定义资源者可以选择禁止特定类型的映射器对某个资源进行处理,如:已最小化过的Javascript库不需要再进行最小化处理
  • 排列(Disposition):资源排列处理链接出现在页面中的具体位置,默认的"head"排列导致链接出现在<head>标签内,"defer"排列导致对Javascript的链接出现在<body>标签的末尾

相关推荐