【问题标题】:Configuring the compile path of sbt-less plugin配置sbt-less插件的编译路径
【发布时间】:2015-01-14 12:27:38
【问题描述】:

我正在使用带有这个插件的播放框架。 public 文件夹的结构如下;

├───app
│   ├───css
│   ├───img
│   ├───js
│   │   ├───apis
│   │   ├───config
│   │   ├───controllers
│   │   ├───directives
│   │   ├───filters
│   │   ├───locale
│   │   └───services
│   └───views
└───test

build.sbt,我有以下内容;

includeFilter in (Assets, LessKeys.less) := "*.less"

excludeFilter in (Assets, LessKeys.less) := "_*.less"

LessKeys.rootpath in Assets := "public/app/css"

在我的main.scala.html 中,我有以下链接标签;

<link rel="stylesheet" href='@routes.Assets.at("app/css/main.css")'>

最后,我的routes 有以下内容;

GET      /assets/*file             controllers.Assets.at(path="/public", file)

但是,build.sbt 中的较少配置似乎不起作用。我想编译public/app/css/main.less。我怎样才能做到这一点?

【问题讨论】:

    标签: playframework less sbt playframework-2.3


    【解决方案1】:

    根据 Play 文档:

    Play 中的可编译资源必须在app/assets 目录中定义。

    还有 sbt-less 自述文件:

    为相对导入和url中的url重写设置rootpath。

    似乎没有办法做到这一点,因为 Play 需要一个可以期待可编译资产而不是 Scala/Java 代码的地方。 rootpath 键似乎只是用于在 LESS 文件中重写导入/url。

    你需要的是:

    ├───app
    │   ├───assets
    │   │   ├───css
    │   │   ├───img
    │   │   └───js
    │   │       ├───apis
    │   │       ├───config
    │   │       ├───controllers
    │   │       ├───directives
    │   │       ├───filters
    │   │       ├───locale
    │   │       └───services
    │   └───views
    └───test
    

    【讨论】:

      【解决方案2】:

      SbtWeb 插件中定义的资产的默认路径是:app/assets:

      sourceDirectory in Assets := (sourceDirectory in Compile).value / "assets"

      所以它可以很容易地被覆盖:

      sourceDirectory in Assets := (sourceDirectory in Compile).value / "path" / "to" / "assets"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-24
        • 2018-11-07
        • 1970-01-01
        • 2021-05-22
        • 2019-08-03
        • 2019-12-26
        • 1970-01-01
        • 2019-06-07
        相关资源
        最近更新 更多