1

Coffeescript を使用して JS ウィジェットを作成しています。コンパイル時に CSS/SCSS および HTML/HAML テンプレートを JS ウィジェットに取り込むために、いくつかのトリックを実行しています。

# widget.js.coffee.erb
class Widget
  constructor: (options) ->
  @template = <%= Haml::Engine.new(
    File.read(
    File.expand_path("../../templates/widget.html.haml", __FILE__))).
    render.to_json %>

  @css = <%= Sass.compile_file(
    File.expand_path("../../stylesheets/widget.css.scss", __FILE__)).
    to_json  %>

問題は、HTML または CSS を変更すると、Rails が開発中の Coffeescript を再コンパイルしないことです。これは、coffeescript ファイルが変更されていないためです。再コンパイルを強制するには、ばかげた空白の変更を加える必要があります。これは面倒です:-)

リクエストごとにアセット パイプラインに特定のファイルを強制的にコンパイルさせる方法についてのアイデアはありますか?

4

1 に答える 1

3

とった。Sprockets には、depend_onディレクティブがあります。私の widget.js.coffee.erb に次の行を追加すると解決しました:

# coffee.js.coffee.erb
#= depend_on '../templates/widget.html.haml'
#= depend_on '../stylesheets/widget.css.scss'

class Widget
...
于 2013-07-20T17:30:31.007 に答える