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

スタイルガイドファイルvendor/stylesheetsは、RoRエンジンの助けを借りてアセットを提供するgemに存在します。

問題

コンパイル済みのアセットを使用してアプリケーションを本番環境で実行すると、スタイルガイドを指す問題が発生し@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)

回避策

subfolder/styles.css.sccsファイルからファイルをインポートするとすぐにapplication.css.scssすべてが期待どおりに機能するため、スタイルガイド自体に問題はありません。

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

ソリューション

誰かが以前にこのようなことに遭遇したことがありますか?これを引き起こす可能性のある既知の問題はありますか?

4

1 に答える 1

2

これは、styles.css.scss ファイルのパスを変更するという単純な問題だと思います。styleguide ディレクトリがサブフォルダーにない場合 (そうでないように見えます)、styles.css.scss の 1 レベル上のインポート パスを指定する必要があります。その場合は、次のことを試してください。

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

application.css.scss は 1 つ上のレベルにあるため、インポート時にこれらのパスを認識しますが、styles.css.scss は認識しません。

于 2013-12-19T21:30:48.287 に答える