Playframework Sass包括和webjar

Playframework Sass包括和webjar,playframework,sass,playframework-2.3,webjars,Playframework,Sass,Playframework 2.3,Webjars,我正在将一个Play项目迁移到2.3版本,并使用ShaggyYeti(对的一个更改)编译我的SCSS文件。我将所有内容捆绑到一个缩小的css中,该css被放置在/assets/stylesheets/main.min.css中。在我开始使用Webjar拉前端库之前,一切都正常 webjar本身工作正常,我能够将它们中的scs绑定到我的主css中,但是从引用其他资源的webjar中绑定scs存在问题。例如,将下载到lib/font awesome,字体位于/assets/lib/font awes

我正在将一个Play项目迁移到2.3版本,并使用ShaggyYeti(对的一个更改)编译我的SCSS文件。我将所有内容捆绑到一个缩小的css中,该css被放置在
/assets/stylesheets/main.min.css
中。在我开始使用Webjar拉前端库之前,一切都正常

webjar本身工作正常,我能够将它们中的scs绑定到我的主css中,但是从引用其他资源的webjar中绑定scs存在问题。例如,将下载到
lib/font awesome
,字体位于
/assets/lib/font awesome/fonts/fontsawesome webfont.eot
等位置。问题是font awesome SCS引用了
。/fonts/fontawesome webfont.eot
,编译后将成为
/assets/fonts/fontawesome webfont.eot

我是否遗漏了一些东西,或者这些怪癖还没有解决,因为新系统建立的时间很短?如果是后者,你认为哪一个是正确的解决方案

  • 我应该使用插件来移动/复制预期文件夹中的引用文件吗? 或
  • SCSS编译器/插件是否应该重写webjar下载文件夹的路径? 或
  • 我应该把字体缩小的css作为一个单独的链接吗

  • 我倾向于相信(2)将是合适的解决方案,因为webjar中的SCS显然引用了一个相对于SCS的资源。应该相对于目标css重写

    这应该有更好的支持,我在模板中直接声明引用:

    <link rel="stylesheet" href="@routes.WebJarAssets.at(WebJarAssets.locate("font-awesome.min.css"))" />
    
    但进口的行为和你说的一样,不起作用。问题是如果你想定制更少的(这就是使用更少的原因),你就不能这样做。另一个解决方法是将字体文件夹放在公用文件夹中并一起提交


    这个问题也发生在sass和其他资源中。

    您只需将以下行添加到_variable.scs

    $fa-font-path: "/assets/lib/font-awesome/fonts";
    

    请参见此处:

    多亏了@GSP59,我可以通过在导入font-awesome-scss之前在我的
    main.scss
    文件中添加以下行来解决此问题:

    $fa-font-path: "../lib/font-awesome/fonts";
    @import "lib/font-awesome/scss/font-awesome.scss";
    

    请注意,如果您没有这样的文件,则不必将其添加到
    \u variables.scss

    更新:这似乎很相关,我最后也做了同样的操作。在这一点上,我似乎没有找到更好的选择。
    $fa-font-path: "../lib/font-awesome/fonts";
    @import "lib/font-awesome/scss/font-awesome.scss";