我用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末尾的数字从开发更改为生产?
答案 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