【发布时间】:2018-04-27 01:46:56
【问题描述】:
我有一个 js.erb 文件,它使用环境变量来设置偶尔会更改的字符串。我希望能够更改环境变量并立即能够加载更新的 javascript 文件,但由于源 erb 文件没有更改,Rails 不知道它需要再次编译。有什么办法可以强制它重新编译?
注意:这是在开发/测试环境中,而不是具有预编译资产的生产环境。
注意#2:这个特性实际上已经被 sprockets 解决了,但是最近的版本比添加这个特性的 PR 还早。我正在寻找一个临时解决方案来完成同样的事情(请参阅https://github.com/rails/sprockets/pull/365)
【问题讨论】:
-
我不知道有什么方法可以做到这一点。如果变量是在另一个文件中定义的,您可以使用
//= depend_on path/to/file.rb。 -
您可以在相关文件中添加一个空格。这将改变校验和并导致它再次被编译。不漂亮,但它有效。
-
@mikwat 我认为这个答案看起来很有希望,但我
Sprockets.register_dependecy_resolver没有定义。有什么想法吗? -
你使用的是什么版本的 Rails?
标签: ruby-on-rails assets erb sprockets