阻止 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
我有一个文件 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