资产管道中不存在图像资产



这种情况是,在开发中没有问题,但在生产中(具有预先编译的资产(,在资产管道中找不到图像。

我觉得我错过了一些微妙的东西,但在阅读了文档并在这个网站上搜索后,我无法确定问题的原因。

来自.html.erb视图文件的片段:

<div class="media-left">
<figure class="image is-256x256">
<%= image_tag('95090365.jpeg') %>
</figure>
</div>

预编译的映像位于/public/assets:-中

95090365-8976ee2cb59e500cd649fb288749282959ada00f93955c319300e4d85779d687.jpg

当我试图加载相关视图时,我在页面上得到了一个500错误,并在log/production.log:中看到了这一点

I, [2020-03-16T05:11:48.841878 #1]  INFO -- : [d802e301-bbe2-4881-83ba-8e107adaa04e]   Rendering users/show.html.erb within layouts/application
I, [2020-03-16T05:11:48.842593 #1]  INFO -- : [d802e301-bbe2-4881-83ba-8e107adaa04e]   Rendered users/show.html.erb within layouts/application (Duration: 0.6ms | Allocations: 406)
I, [2020-03-16T05:11:48.842735 #1]  INFO -- : [d802e301-bbe2-4881-83ba-8e107adaa04e] Completed 500 Internal Server Error in 5ms (ActiveRecord: 0.4ms | Allocations: 1785)
F, [2020-03-16T05:11:48.843367 #1] FATAL -- : [d802e301-bbe2-4881-83ba-8e107adaa04e]   
[d802e301-bbe2-4881-83ba-8e107adaa04e] ActionView::Template::Error (The asset "95090365.jpeg" is not present in the asset pipeline.):
[d802e301-bbe2-4881-83ba-8e107adaa04e]      7:       <article class="media">
[d802e301-bbe2-4881-83ba-8e107adaa04e]      8:         <div class="media-left">
[d802e301-bbe2-4881-83ba-8e107adaa04e]      9:           <figure class="image is-256x256">
[d802e301-bbe2-4881-83ba-8e107adaa04e]     10:             <%= image_tag('95090365.jpeg') %>
[d802e301-bbe2-4881-83ba-8e107adaa04e]     11:           </figure>
[d802e301-bbe2-4881-83ba-8e107adaa04e]     12:         </div>
[d802e301-bbe2-4881-83ba-8e107adaa04e]     13:         <div class="media-content">
[d802e301-bbe2-4881-83ba-8e107adaa04e]   

我注意到在其他一些问题和答案上,人们已经设置了

config.assets.compile = true 

为了修复这个错误,但我在Rails文档中看到了不建议用于生产的内容

此模式使用更多内存,性能比默认模式差,不推荐使用"-https://guides.rubyonrails.org/asset_pipeline.html

我尝试过带jpeg后缀和不带jpeg后缀的image_tag,两者都有相同的问题。

有什么想法吗?提前谢谢。

<%= image_tag('95090365.jpeg') %>

需要更改为

<%= image_tag('95090365.jpg') %>