【问题标题】:CSS @import statementCSS @import 语句
【发布时间】:2025-12-30 15:35:11
【问题描述】:

我目前正在使用 Initializr 生成的 Bootstrap 增强版 HTML5 Boilerplate,其中还包括 LESS 框架。

现在 style.less 包含在以下行中:

<link rel="stylesheet/less" href="${resource(dir: 'less', file: 'style.less') }">

这可行,但是@import('bootstrap/bootstrap.less') 行失败,因为它在/static/less/bootstrap/bootstrap.less 中找不到bootstrap.less 文件。但是,该文件在没有 static 部分的情况下可用。

我是否需要告诉 Grails 将 not 直接放在正确目录中的 GSP 页面引用文件(它们可能是什么类型)中,即 static

我发现了一个关于这个问题的问题:http://jira.grails.org/browse/GPRESOURCES-135 - 这告诉我,它已在 1.2 版中修复,我目前使用的是 2.0.2。

我必须做什么才能完成这项工作?

【问题讨论】:

  • 请注意,您提到的 1.2 版本是 plugin 的版本。最新的插件版本是 1.1.6,因此尚未实施修复,至少在发布版本中没有。

标签: css grails less


【解决方案1】:

我安装了预编译LESS 文件的lesscss-resources 插件。这样,我也可以使用@import 语句。

我已将我的核心样式表定义为 ApplicationConfig.groovy 中的一个模块。

modules = {

    // ...

    sitecore {      
        dependsOn 'jquery'

        resource url:'less/style.less', attrs:[rel: "stylesheet/less", type:'css'], bundle:'bundle_sitecore'
        resource url:'js/main.js'
    }

通过这样做,我可以使用 Grails 的 Resources 插件来引用它:

<r:require module="sitecore" />

【讨论】:

  • 你有没有办法让插件处理对导入文件的更改?目前,我必须重新启动 grails 才能将它们拾起。
  • 很久没有用 Grails 做更多的事情了,这一项恐怕帮不了你。