【问题标题】:Force reload of static assets with embedded ruby in Rails在 Rails 中使用嵌入的 ruby​​ 强制重新加载静态资产
【发布时间】: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


【解决方案1】:

我能够通过这个问题How to add a rails asset dependency to an environment variable with sprockets?的答案实现我的目标

但是,首先我必须将 sprocket 升级到 >= 3.0.0。

【讨论】:

    猜你喜欢
    • 2013-12-22
    • 2012-04-05
    • 2015-10-01
    • 1970-01-01
    • 2016-11-26
    • 2021-02-15
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多