我在模型中有一个方法,它将图像URL作为字符串返回,例如:" assets / myImage.png",这在没有CDN的生产中很有效,图像正在服务。
使用CDN(Cloudfront)仅提供带有指纹的文件或我读过的内容。因此,当我打开我的Google控制台时,它会显示" assets / myImage.png",而不是指纹版本,因此它显然无法显示图像。
简而言之:我需要知道如何使用辅助方法在模型中返回图像的指纹版本。
任何帮助都会很棒!
答案 0 :(得分:1)
我相信您可以使用以下方式访问Sprockets助手:
self.class.helpers.asset_path('application.css')
或self.class.helpers.asset_digest_path('application.css')
这两种方法都是向后访问Sprockets用于生产中指纹资产的帮助程序的方法。这有用吗?
基于this SO回答
答案 1 :(得分:0)
答案 2 :(得分:0)
我实际上并不认为我的上述答案会奏效。相反,试试这个instide production.rb
config.action_controller.asset_host = "d24xjtg100euk4.cloudfront.net"
这应该将CDN网址附加到所有铁路助手(例如image_helper)。
您还可以滚动自己的自定义助手,获取资产位置并将其与CDN网址连接。
基于此博文:SETTING UP A CLOUDFRONT CDN FOR RAILS
编辑:使用Sprockets辅助方法在下面发布另一个答案。