19

'd部分シートを使用@importしてcss/sassを整理します。

/app
  /assets
    /stylesheets
      _constants.sass
      _layout.sass
      ...
      app.css.sass

app.css.sass:
  @import _constants.sass
  // basic styles
  @import _layout.sass
  @import ...

app.css.sass@importルールが_layout.sassあります。これにより、ミックスインと変数を、コンパイルされる前に生のsassファイル間で共有できます。app.css

@import問題は、Railsが'd部分(_layout.sass)への変更を認識せずapp.css、実際のapp.css.sassファイル自体に変更を加えるまで再生成されないことです。これによりワークフローが劇的に遅くなり、app.css.sass変更を確認するために空白行を追加/削除する必要があります。3.0ではこの問題は発生していません。

開発中のすべてのサーバーリクエストでsassアセットを強制的に再生成する方法はありますか?

4

2 に答える 2

29

ディレクティブを使用すると、depend_on必要な処理を実行できます。これにより、指定されたファイルがベースファイルの依存関係になります(したがって、依存関係が変更されたときにベースファイルが再生成されます)が、バンドルには含まれません。

例えば:

/*
*= depend_on _layout.sass
*= depend_on _constants.sass
*/
@import _layout.sass
@import _constants.sass

このsassとsprocketsのブログ投稿、およびsprocketsのドキュメント(特にディレクティブのセクション)を参照してください。

于 2011-09-01T11:36:03.730 に答える
2

nanothiefからの回答は、私を解決策に導きました(ありがとう!)が、間接的な方法で。ついにここに戻って参照された投稿を調べる時間を見つけたら、修正はもう必要ないというように更新されました。

案の定、このバグはRails 3.1.0で修正されており、3.1.0のsass-railsで安定しているようです。とても良い!いくつかのアプリでテストしたところ、gemを更新すると、すべてが正しく機能するように戻ることが確認されました。

于 2011-09-14T18:58:31.830 に答える