Rails回形针图像未在生产中显示

时间:2013-04-19 11:53:13

标签: ruby-on-rails ruby-on-rails-3 paperclip

我用Paperclip附带的图片在开发环境中显示正常,但在生产中它们显示出破损,我已经检查了蚂蚁图片的网址是否相同:

<img alt="Badminton" class="img-rounded" src="/system/sports/images/000/000/012/small/badminton.jpg?1365944689" />

我正在使用Paperclip 3.0.4并在开发中使用SQLite,在生产中使用PostgreSQL,我做错了什么?

好的,我再次检查过,我在开发中的图像与生产中的图像没有相同的URL。 在开发中,我的形象是:

src="/system/sports/images/000/000/012/small/badminton.jpg?1365944689"

在制作中是:

src="/system/sports/images/000/000/012/small/badminton.jpg?1366328860"

在生产中如果我尝试使用开发网址访问图像,它会正确显示。

这里发生了什么?为什么要将图像URL末尾的数字从开发更改为生产?

2 个答案:

答案 0 :(得分:1)

你得到了同样的网址!最后的那个数字不是图像路径的一部分,它用于缓存......忽略它(关于这个问题)。

您的生产网址正在您的系统上查找图片。那不可能。

你的主人是谁?许多主机(包括Heroku,如果你使用的那些)不提供上传图像资产的能力。您必须使用单独的服务,例如Amazon S3存储。它简单又便宜。

答案 1 :(得分:1)

使用Rails 4.2.4时遇到了同样的问题。默认情况下,Rails不会读取文件夹 public 。 此信息显示在config/environments/production.rb上。 因为Apache或NGINX已经处理过这个问题。

要解决此问题,您可以更改该行config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?,收件人

config.serve_static_files = true。如果您使用的是以前版本的rails,则可能会将其写为config.serve_static_assets = true