3

ローカルで作業していたRails3.1アプリをデプロイしようとしています。しかし、Heroku(Cedarスタック)にデプロイすると、ローカルでは発生していなかった問題が発生し、これに対する解決策を見つけることができません。

実際、一部のSCSSファイルでは、親ディレクトリにある他のSCSSファイルをインポートしています。私が試したいくつかの構文の中で:

 @import "file.css.scss";
 @import "file";
 @import "/file.css.scss";
 @import "/file";
 @import "../file.css.scss";
 @import "../file";

これらのほとんどはローカルで機能しますが、私のherokuCedarアプリでは機能しません。また、インポートしたファイルの名前をアンダースコア付きの「_file.css.scss」に変更してみました。これは、インポートするSCSSファイルの標準形式のようです。しかし、何も変更しませんでした。

herokuログで発生するエラーは次のとおりです。 ActionView::Template::Error (File to import not found or unreadable: /mixins.css.scss.

私は今アイデアから抜け出しているので、これを解決するための手がかりがあればありがたいです。

どうもありがとう、乾杯!

4

3 に答える 3

0

インポートするファイルが同じフォルダー内にある場合、次のように動作するはずです。

@import './file.css.scss';

同様の問題に遭遇したとき、相対パスとファイル拡張子が存在することが重要であることがわかりました。../ を使用しようとしていたため、同じフォルダー内ではなく親フォルダーでインポートするファイルを探します。

于 2012-10-12T15:08:25.887 に答える
0

構文は

以下のフォルダ構成で

/app/
  /assets/
    /stylesheets/
      /pages/
       index.css.scss
       products.css.scss
      application.css.scss

application.css.scss から /pages/ に scss ファイルを含めたい場合は、次のようにします。

@import "pages/index";
@import "pages/products";

次のこともできるはずです(ただし、これがプロジェクトにコンパスがあることに限定されているかどうかはわかりません)。

@import "pages/*";

グロブのインポートができるのは素晴らしいことです。しかし、それは Compass のみ、または少なくとも以前はそうであったと思います。

于 2012-08-08T00:19:48.717 に答える
-1

最善の策は、組み込みの Rails Asset Pipeline を使用して、スタイル ファイルを含めて処理することです。

フォルダーには、app/assets/stylesheetsという名前のファイルが必要ですapplication.css。このファイルは、Sprocketsapp/assets/stylesheetsを使用して、フォルダー内に配置されたすべての css ファイルを自動的に含めます。

ファイルの上部に、次のように表示されます。

/*
 * This is a manifest file that'll automatically include all the stylesheets available in this directory
 * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
 * the top of the compiled file, but it's generally better to create a new file per style scope.
 *= require_self
 *= require_tree . 
*/

パーツには、この*= require_self実際のapplication.cssファイルに記述された css スタイルが含まれますが、*= require_tree .パーツには にあるアセットが含まれapp/assets/stylesheetsます。

含める順序を変更したり、特定のスタイルシート (たとえば、 にmixins.css.scssあるという名前のファイル) を指定したりする場合は、次のようにしapp/assets/stylesheetsます。

/*
 * This is a manifest file that'll automatically include all the stylesheets available in this directory
 * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
 * the top of the compiled file, but it's generally better to create a new file per style scope.
 *= require_self
 *= require_tree . 
 *= require_mixins
*/

そして、スプロケットの魔法があなたのファイルをあなたのために含めます。

于 2012-05-08T03:16:25.633 に答える