【问题标题】:Grails asset pipeline does not work seem to work for importing less filesGrails 资产管道似乎不适用于导入较少的文件
【发布时间】:2015-02-16 16:13:26
【问题描述】:

我正在处理一个使用资产管道的 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;
}

我的.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>

更新

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

【问题讨论】:

    标签: grails less asset-pipeline


    【解决方案1】:

    您没有真正提供足够的信息来找出导致问题的原因,例如错误信息中提到的文件是lineplanning.css,但是你根本没有提到这个。

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

    style.less导入各种其他less文件,style.less生成的CSS被包含在this file via中

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

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

    【讨论】:

    • 对不起 lineplanning.css == main.css。您可能是对的,这可能是因为执行 require 的文件是 CSS 而不是更少。让我检查一下。
    • 哇,这是一个非常棒的项目。
    【解决方案2】:

    我需要删除

    *= require flex/xBrowserFlex.css
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多