我正在使用使用Asset Pipeline的Grails项目。我有以下1个css文件和2个文件...
/*
*= require flex/xBrowserFlex.css
*= require dashboard/dashboard.css
*/
.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;
}
@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文件中,一切正常。这里的问题是,当我尝试导入资产管道中包含的另一个较少的文件时,它不起作用。
答案 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
位于同一文件夹中。