我正在使用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文件没有改变。我需要进行愚蠢的空格更改以强制它重新编译。这很烦人: - )
关于如何强制资产管道在每个请求上编译某些文件的任何想法?
答案 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
...