是否可以让Rails Asset Pipeline在每次请求时编译Coffeescript?

时间:2013-07-20 17:15:16

标签: ruby-on-rails coffeescript asset-pipeline

我正在使用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文件没有改变。我需要进行愚蠢的空格更改以强制它重新编译。这很烦人: - )

关于如何强制资产管道在每个请求上编译某些文件的任何想法?

1 个答案:

答案 0 :(得分:3)

知道了。链轮有一个depend_on指令。将以下行添加到我的widget.js.coffee.erb解决了它:

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

class Widget
...