图片未加载到rails heroku app

时间:2015-07-13 17:30:47

标签: ruby-on-rails heroku

出于某种原因,当我尝试更新我的网站徽标时,当我将其推送到Heroku时,图像不会出现,只是图像'文件名作为链接。图像在本地显得很好。我有png文件保存在我的资产下的images文件夹中,所以它不是Heroku找不到它的问题。我看到了类似的post,但它确实没有回答我的问题。那么为什么新图像没有出现呢?

3 个答案:

答案 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


Gemfile 中的

添加

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帮助程序即使在生产模式下也能正确呈现图像,此时图像的路径会因自定义哈希而失真。