SASS子文件夹中的@import无法工作

6

背景介绍

我的样式表结构如下:

/stylesheets   
 |
 |-- /subfolder
 |    |
 |    + styles.css.scss
 |
 + application.css.scss 

application.html.haml

  = stylesheet_link_tag "application", media: "all"
  = stylesheet_link_tag "subfolder/styles", media: "all"

application.css.scss

@import "styleguide";
@import "styleguide/base/_all";
@import "styleguide/modules/_all-no-grid";
// Omitting rules not relevant to the problem

styles.css.scss

@import "styleguide";
@import "styleguide/grid/_grid";
@import "styleguide/modules/_all-grid";
// Omitting rules not relevant to the problem

样式指南文件存储在一个 gem 中,该 gem 使用 RoR 引擎从 vendor/stylesheets 提供资产。

问题

当我在生产环境中使用预编译的资产运行应用程序时,我遇到了指向样式指南的 @import 的问题。

File to import not found or unreadable: styleguide.
Load path: 
 Sass::Rails::Importer([omitted]/app/assets/stylesheets/local/styles.css.scss)
 (in [omitted]/app/assets/stylesheets/local/styles.css.scss)

解决方法

样式指南本身没有问题,因为只要我从application.css.scss文件中导入subfolder/styles.css.sccs文件,一切都能按照预期运行。

application.html.haml

  = stylesheet_link_tag "application", media: "all"

application.css.scss

@import "styleguide";
@import "styleguide/base/_all";
@import "styleguide/modules/_all-no-grid";
@import "subfolder/styles"
// Omitting rules not relevant to the problem

styles.css.scss

// Same as above, included for completeness
@import "styleguide";
@import "styleguide/grid/_grid";
@import "styleguide/modules/_all-grid";
// Omitting rules not relevant to the problem

解决方案

有人遇到过类似的情况吗?有什么已知的问题可能会导致这种情况发生吗?


1
如果您想将您的scss文件导入应用程序的scss文件中,您应该在引用时省略下划线'_'... 例如:@import "styleguide/base/all"; - magicspon
1个回答

2
我猜这可能只是在你的styles.css.scss文件中修改路径的简单问题。如果你的styleguide目录不在子文件夹中(看起来好像确实不在),你需要在styles.css.scss中向上指定导入路径。 如果是这种情况,只需尝试:

@import "../styleguide";
...

由于application.css.scss位于上一级目录,它在导入时能够识别这些路径,而styles.css.scss则不行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接