出于某种原因,当我尝试更新我的网站徽标时,当我将其推送到Heroku时,图像不会出现,只是图像'文件名作为链接。图像在本地显得很好。我有png文件保存在我的资产下的images文件夹中,所以它不是Heroku找不到它的问题。我看到了类似的post,但它确实没有回答我的问题。那么为什么新图像没有出现呢?
答案 0 :(得分:2)
这是我的经验:[ ruby 2.30,rails 4.2.6 ]
遵循heroku指令asset pipeline on rails 4
在 config / application.rb 中添加设置
config.serve_static_assets = true # deprecated
改为使用
config.serve_static_files = true # Ok
添加
gem 'rails_12factor', group: :production
然后,正如heroku所说,set ruby version in your Gemfile
gem ruby '2.3.0'
现在您可以更新正在运行的依赖项
bundle install
然后您应该调整源代码:
在没有扩展程序的情况下更改image_tag " source_name"
<link_to image_tag("icon") ... %>
带有image_tag &#34; source_name&#34; 带扩展名(.png,.jpg或其他)
<link_to image_tag("icon.png") ...%>
你不应该跑步
RAILS_ENV =生产佣金资产:预编译
因为heroku在部署期间为您执行此操作。
... 现在是时候部署
了git add <files modified>
git commit -m "comments your commit"
git push heroku <your branch>
这为我解决了......我也希望你。
答案 1 :(得分:1)
添加此项以显示预编译的图像。在heroku默认模式是production.So它需要显示预编译的图像。预编译图像或资产时。它压缩代码并将图像重命名为例如:(image_42342j3n42b3n44234234.jpg),因此您需要显示此重命名的图像。因此,您需要添加
config.assets.digest = true
这是你的production.rb
答案 2 :(得分:0)
如果显示
等图像<img src='src_of_your_image'>
这不起作用,因为asset pipeline,您必须使用image_path
帮助
<%= image_path 'src_of_your_image' %>
Image path帮助程序即使在生产模式下也能正确呈现图像,此时图像的路径会因自定义哈希而失真。