Rails 4; 资产助手未指向指纹图像资产(无法在生产中加载@ Heroku)

jam*_*mes 14 css ruby-on-rails heroku asset-pipeline

这个问题让我发疯了...我想我已经尝试了Sass文件,ERB文件,资产帮助器,图像助手等各种可能的组合等.有人请给我新的想法!

语境:

Rails应用程序需要使用资产助手,以便在预编译资产时,源将是指纹资产文件.即,如果你刚刚调用了img src ="X.jpg",那么生产中的网站会寻找X.jpg,但是公共/资产中的文件实际上已被指纹化为X-as; diofua; wemfiwaejfoiawefo.jpg.获取指纹文件的唯一方法是使用资产助手,例如image_url('X.jpg').

现在在我的实时网站上,我正在使用资产助手,但无论出于何种原因,它都没有指向指纹资产.请注意,资产是在开发中找到的(但同样,这是因为开发中没有添加指纹).

以"classic-map.png"为标题的图片,位于app/assets/images/galleria

从application.css文件中所需的css.erb文件调用映像.在css.erb文件中,我有以下代码:

background-image: url(<%= asset_path 'galleria/classic-map.png' %>);
Run Code Online (Sandbox Code Playgroud)

供参考,http ://guides.rubyonrails.org/asset_pipeline.html请注意,我选择将其写为css.erb文件,因此使用asset_path与asset-path.此外,我最初认为问题可能是插值,但在页面源中,网址肯定是有效的,只是它指向url(galleria/classic-map.png)而不是url(galleria/classic-地图apsoidufalskjf; kasj.png)

对任何可以提供帮助的人都有一百万的荣誉!

jam*_*mes 1

我和一位高级 Rails 开发人员坐在一起,他仍然无法帮助我解决这个问题。但我们最终使用的解决方法是,我们只是手动删除公共文件夹中的资产指纹(因为指点是资产助手要指向的内容)。

galleria/classic-map-587854758918434124.png即,我们刚刚手动更改回的文件galleria/classic-map.png并且工作正常。

请注意,如果您执行此“黑客”操作,则下次预编译资产时,Rails 将创建另一个指纹资产,因此您将出现重复,除非您每次都想继续删除额外的指纹资产。对我来说,我不在乎重复,我在乎的是不再考虑这个。