【问题标题】:@import-ed .scss files and Sprockets 4@import-ed .scss 文件和 Sprockets 4
【发布时间】:2016-02-20 15:23:15
【问题描述】:

现在得到好的答案可能还为时过早,但我们开始吧:我有一个测试 Rails 项目,assets/ 目录看起来像这样:

config/
  manifest.js
images/
javascripts/
  application.js
stylesheets/
  _base.scss
  _reset.scss
  _theme.scss
  _variables.scss
  application.scss

清单文件如下所示:

// JS and CSS bundles
//= link_tree ../javascripts .js
//= link_tree ../stylesheets .css

// Images so that views can link to them
//= link_tree ../images

application.scss 是这样的:

@import "reset";
@import "variables";
@import "base";
@import "theme";

_base.scss_theme.scss 都使用_variables.scss 文件中定义的变量。

想要它只是像往常一样编译application.scss,但它失败了,因为它认为变量没有被定义;这是合理的,我作为树链接,所以[我假设]它正在单独编译每个文件,并且变量在那个时间点对这两个文件不可用。

所以我尝试link ../stylesheets/application.css 而不是树,我收到错误消息couldn't find file '../stylesheets/application.css' under '/Users/danielcouper/Projects/myproject/app/assets/config'似乎完全看错了地方,或者根据您使用的是link还是link_tree,关于文件路径有不同的(未记录的)规则。

如果我将manifest.jsassets/config/ 目录移出到assets/ 以使相对路径正常工作,如the Sprockets upgrading notes 中所述,我收到一条错误消息,告诉我assets/config/ 下没有清单文件.

目前[可以理解]文档非常稀疏;我读过的唯一有用的东西是http://eileencodes.com/posts/the-sprockets-4-manifest/,它让我明白了这一点

【问题讨论】:

  • 我遇到了同样的问题,也找不到答案。我目前正在到处手动导入所需的文件。

标签: ruby-on-rails sass sprockets


【解决方案1】:

不要使用link_tree,链接树会导入树中的所有文件。如果您只想要一个 application.css 文件,请使用:

link application.scss

这样 sprockets 将从该文件开始,而 sass 将执行导入。

【讨论】:

    猜你喜欢
    • 2022-06-14
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2018-01-31
    • 2019-09-27
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    相关资源
    最近更新 更多