如何修改Grails插件使用的资源的默认映射位置

时间:2013-06-03 15:20:59

标签: grails grails-plugin

我已安装:

compile ":jquery-ui:1.8.24"
compile ":jqgrid:3.8.0.1"

我收到了下一个错误:

| Error 2013-06-03 15:20:33,892 [http-bio-8080-exec-7] ERROR resource.ResourceMeta  - While processing /plugins/jqgrid-3.8.0.1/css/jqgrid/ui.jqgrid.css, a resource was required but not found: /plugins/jqgrid-3.8.0.1/css/jqgrid/ellipsis-xbl.xml

我打开了文件C:\Users\user\.grails\ivy-cache\org.grails.plugins\jqgrid\zips\jqgrid-3.8.0.1.zip。没有:css/jqgrid/ellipsis-xbl.xml

最新版本的JQGrid(4.5.2)包含文件ellipsis-xbl.xml。但我正在使用最新版本的Grails插件。

我怎么能告诉Grails在另一个位置查找ellipsis-xbl.xml(比如说web-app / css / jqgrid-additions / ellipsis-xbl.xml)。

我对Google进行了一项研究,这可能是相关的:

1 个答案:

答案 0 :(得分:1)

我最终删除了除jQuery(内置)之外的所有css / js插件。只需在/ web-app目录中提取css / js文件即可。然后将它们包含在/grails-app/conf/ApplicationResources.groovy中,如下所示:

modules = {
  ui {
    dependsOn 'jquery'
    resource url: 'css/default.css'
    resource url: 'css/print.css', attrs:[media:'print']
  }
  bootstrap {
    dependsOn 'jquery'
    resource url: 'css/bootstrap.css'
    resource url: 'css/bootstrap-responsive.css'
    resource url: 'js/bootstrap.js'
  }
  choice {
    resource url: 'js/choice.js'
  }
  application {
    dependsOn 'jquery,choice'
    resource url: 'js/application.js'
  }
}

选择和应用是特定于应用的。以此为例。然后,在布局中调用它们:

<!doctype html>
<html lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><g:layoutTitle default="My Application" /></title>
    <g:layoutHead />
    <r:require modules="jquery,ui,bootstrap,choice,application" />
    <r:layoutResources />
  </head>
  <body>
    <div id="wrapper">
      <div id="main" class="container-fluid">
        <div class="row-fluid">
          <div class="span12">
            <g:layoutBody/>
          </div>
        </div>
      </div>
    </div>
    <r:layoutResources />
  </body>
</html>

这样,我可以自己管理css / js库。