Grails资产管道不起作用似乎适用于导入较少的文件

时间:2015-02-16 16:13:27

标签: grails less asset-pipeline

我正在使用使用Asset Pipeline的Grails项目。我有以下1个css文件和2个文件...

的main.css

/*
*= require flex/xBrowserFlex.css
*= require dashboard/dashboard.css
*/

xBrowserFlex.less

.simple-column-flex{
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex-direction: column;
  -webkit-box-orient: vertical;
  flex-direction: column;
}

my.less

@import "xBrowserFlex.less";

但是当我尝试访问该页面时,我的grails控制台中出现以下错误...

2015-02-16 11:04:08 ERROR [org.codehaus.groovy.grails.web.errors.GrailsExceptionResolver] MissingMethodException occurred when processing request: [GET] /mxnetweb/assets/lineplanning.css
No signature of method: org.mozilla.javascript.Undefined.replaceAll() is applicable for argument types: (java.lang.String, asset.pipeline.processors.CssProcessor$_process_closure1) values: [url\([\'\"]?([a-zA-Z0-9\-\_\./\@\#\?\ \&\+\%\=]+)[\'\"]?\), ...]. Stacktrace follows:
groovy.lang.MissingMethodException: No signature of method: org.mozilla.javascript.Undefined.replaceAll() is applicable for argument types: (java.lang.String, asset.pipeline.processors.CssProcessor$_process_closure1) values: [url\([\'\"]?([a-zA-Z0-9\-\_\./\@\#\?\ \&\+\%\=]+)[\'\"]?\), ...]
    at asset.pipeline.processors.CssProcessor.process(CssProcessor.groovy:35)

所以这看起来可能是资产管道的问题。我该如何处理?

资产管道信息

<grails.assets.less.version>1.9.0</grails.assets.less.version>

更新

澄清一下,如果我注释掉include并将less复制到my.less文件中,一切正常。这里的问题是,当我尝试导入资产管道中包含的另一个较少的文件时,它不起作用。

2 个答案:

答案 0 :(得分:1)

您还没有提供足够的信息来弄清楚导致问题的原因,例如:错误消息中提到的文件是lineplanning.css,但您根本没有提到这一点。

也许你可以通过将你的项目与this example进行比较来找出你出错的地方,style.less使用较少的asset-pipeline插件和CSS。

this file导入其他各种较少的文件,style.less生成的CSS包含在{{3}}中

/*
*= encoding UTF-8
*= require autocomplete/styles.css
*= require style.css
*/

请注意我们require style.css,因为它是style.less生成的输出文件的名称。

答案 1 :(得分:0)

我需要删除

*= require flex/xBrowserFlex.css

并确保xBrowserFlex.less文件与my.less位于同一文件夹中。