阻止 Rails 4 Sprocket Asset Pipeline 缓存特定文件

Prevent Rails 4 Sprocket Asset Pipeline from caching a specific file

我有一个文件 globals.css.scss.erb,其中仅包含:

<%= Styles.output %>

Styles 是一个自定义模块,用于输出基于 YAML 文件的格式化 SCSS/SASS 全局变量。

我的问题是,当我更改 YAML 文件时,globals.css 没有得到更新(即它被 Sprockets 缓存)。

我想在 globals.css 上禁用缓存,而不是我所有的资产。这可能吗? 这只适用于我的开发环境。

谢谢,

埃里克

P.S.,还有this post没有解决问题

据我了解,您始终需要重新编译 .erb 资产。这是解决方案:

Sprockets::Asset.class_eval do
  alias_method :orig_dependency_fresh?, :dependency_fresh?
  def dependency_fresh?(environment, dep)
    if dep.pathname.extname.eql? '.erb'
      false
    else
      orig_dependency_fresh?(environment, dep)
    end
  end
end