ruby-on-rails – 如何更改Rails asset_tag URL的格式?

ruby-on-rails – 如何更改Rails asset_tag URL的格式?,第1张

概述背景 我目前正在开发一个Rails 3项目,我打算与Amazon CloudFront一起使用,其中一个自定义源指向我的实际Web服务器.这意味着我的Web服务器将告诉浏览器从CloudFront检索静态资产,如果CloudFront已缓存资产,它将返回它,如果不是,它将使用来自我的Web服务器的相同路径检索它,然后将其缓存以备将来使用要求. 问题 Amazon CloudFront在确定是否应该 背景

我目前正在开发一个Rails 3项目,我打算与Amazon CloudFront一起使用,其中一个自定义源指向我的实际Web服务器.这意味着我的Web服务器将告诉浏览器从CloudFront检索静态资产,如果CloudFront已缓存资产,它将返回它,如果不是,它将使用来自我的Web服务器的相同路径检索它,然后将其缓存以备将来使用要求.

问题

Amazon CloudFront在确定是否应该破坏其自己的缓存以从其原始位置重新下载资产时,会删除并忽略查询字符串参数.这显然会导致Rails使用RAILS_ASSET_ID生成URL的方式出现问题:/assets/path/to/asset.ext?RAILS_ASSET_ID.使用默认资产URL,CloudFront将保留过时资产长达24小时.

解?

我希望做的是以某种方式覆盖Rails 3生成资产标签的方式,这样我就可以生成像/assets/RAILS_ASSET_ID/path/to/asset.ext这样的URL.我已经有了一个如何使Web服务器响应这些URL的解决方案,我只需要弄清楚如何让Rails生成URL.

笔记

>我的RAILS_ASSET_ID将是我最新的git commit hash的子字符串.设置此项将在部署过程中由cAPIstrano处理.我可以在每个部署中清除所有资产缓存,我不需要特定于资产的ID
>我已经尝试覆盖ActionVIEw :: Helpers :: AssetTagHelper.rewrite_asset_path,但它似乎不起作用,从我读到的这是一个不应该依赖的私有方法.
>提前谢谢!

解决方法 “将ActionController :: Base.config.asset_path设置为一个proc,它接受未修改的资产路径,并返回资产缓存工作所需的路径.”

这是来自AssetTagHelper文档.

总结

以上是内存溢出为你收集整理的ruby-on-rails – 如何更改Rails asset_tag URL的格式?全部内容,希望文章能够帮你解决ruby-on-rails – 如何更改Rails asset_tag URL的格式?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1292977.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存