这种情况是在Development中没有问题,但是在Production(已预编译资产)中没有在资产管道中找到映像。
我觉得我缺少一些细微的东西,但是在阅读了文档并在此站点上搜索后,我无法指出问题的原因。
.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,两者都存在相同的问题。
有什么想法吗?预先感谢。
答案 0 :(得分:0)
<%= image_tag('95090365.jpeg') %>
需要更改为
<%= image_tag('95090365.jpg') %>