【问题标题】:What does config.assets.version do in Rails?config.assets.version 在 Rails 中有什么作用?
【发布时间】:2023-03-09 02:07:01
【问题描述】:

我在文档中找不到这个问题的明确答案。许多参考资料只是说“更改版本会使资产无效”。那么,指纹机制不也是这样做的吗,它根据文件内容和名称生成哈希标签?有谁知道config.assets.version 到底是干什么用的?

【问题讨论】:

标签: ruby-on-rails-3 asset-pipeline


【解决方案1】:

config.assets.version 是用于 MD5 哈希生成的选项字符串。这可以更改为强制重新编译所有文件。*

当资产内容未更改但您想更改随资产提供的响应标头但这些标头缓存在 CDN 或用户浏览器之类的某个位置时,这会很有帮助。

更改您的资产版本将允许您使用新的 md5 哈希重新生成所有资产,从而允许您使用新的标头为您的 CDN 提供相同的资产。

*来自RailsGuides - Configuring Rails Applications

注意:截至 2016 年 5 月 20 日,此功能似乎已经被破坏了一段时间https://github.com/rails/sprockets-rails/issues/240。另一种方法是更改​​ Rails.application.config.assets.prefix 的值。

【讨论】:

  • 希望他们能尽快解决这个问题。在查看网站以查看更改之前,要求用户确保他们重置历史记录,这根本不是一种选择,哈哈
  • @bkunzi01 你有没有看到我关于另一种方法来破坏你的资产到期日长的说明?
  • 好提示!当你这样做时,你需要删除原来的 public/assets 文件夹还是会自动预压缩。到新文件夹并避开旧资产?
  • 事先rake assets:clobber 不会有什么坏处,但这不是 100% 必要的,因为您生成的视图 html 和 css 将在路径中引用具有新前缀的资产文件,从而使旧资产有效地不可见普通用户。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
  • 2015-10-25
  • 1970-01-01
  • 2011-11-26
相关资源
最近更新 更多