加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails编译有无md5哈希的资产,为什么?

发布时间:2020-12-16 20:15:52 所属栏目:百科 来源:网络整理
导读:我比较新的RoR,我很好奇为什么Rails编译资产有无md5哈希生产? 我运行bundle exec rake资产:clean然后绑定exec rake资产:precompile 我的production.rb文件: MyApp::Application.configure do # Code is not reloaded between requests config.cache_clas
我比较新的RoR,我很好奇为什么Rails编译资产有无md5哈希生产?

我运行bundle exec rake资产:clean然后绑定exec rake资产:precompile

我的production.rb文件:

MyApp::Application.configure do

  # Code is not reloaded between requests

  config.cache_classes = true

  # Full error reports are disabled and caching is turned on

  config.consider_all_requests_local       = false

  config.action_controller.perform_caching = true

  # Disable Rails's static asset server (Apache or nginx will already do this)

  config.serve_static_assets = false

  # Compress JavaScripts and CSS

  config.assets.compress = true

  # Don't fallback to assets pipeline if a precompiled asset is missed

  config.assets.compile = false

  # Generate digests for assets URLs

  config.assets.digest = true 

  config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx

  config.assets.precompile += %w(tos.js,tos.css)

  config.i18n.fallbacks = true

  config.active_support.deprecation = :notify

end

我的应用程序与名称中的散列文件一起使用,这在我的情况下应该是这样的:)

所以我有两个问题:

1)为什么编译时会发生?

Rails compiles assets both with and without md5 hash for production

2)这些文件是什么(没有哈希)?

也许我没有得到什么,所以请有人解释.

解决方法

它的原因是,您可以在不知道MD5指纹的情况下访问文件(例如,在非rails应用程序中,或rails应用程序中的未由rails堆栈编译或运行的文件(例如,500 / 502状态错误页面),在这种情况下,您必须编译资源,然后在每次更新代码时更改静态HTML文件中的css / js链接(从而导致MD5哈希更改).

因此,rails产生每个资产文件的2个副本,一个具有文件名中的指纹,另一个没有(例如application-731bc240b0e8dbe7f2e6783811d2151a.css和application.css).指纹版本明显优先(参见rails asset pipeline guide中的“what is fingerprinting and why should I care”).但不消化的版本是作为回退.

作为这个问题的最后一个想法,我将读取以下拉动请求到rails git repo:https://github.com/rails/rails/pull/5379,他们正在讨论未消化的文件名的优缺点,以及是否可以关闭编译的他们.

HTH

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读