2014-01-21 66 views
0

我使用Carrierwave将图像上传到s3上免费的Heroku测功机(虽然这也发生在本地)。我显示图像的页面将它们加载为CSS背景图像(内联CSS样式)。s3上的图像需要刷新页面才能加载

我的问题是,图像不会加载,直到我刷新页面。然后,如果我访问同一模型中的另一个图像,它会加载看起来是以前缓存的图像。

下面是相关的代码:

image.rb

class Image < ActiveRecord::Base 
    mount_uploader :image, ImageUploader 
end 

image_controller.rb

class ImagesController < ApplicationController 
    # using a different layout for the show action 
    layout :resolve_layout 

    def show  
    @image = Image.find(params[:id]) 

    # set variables for image width and height 
    img = Magick::Image::read(@image.image_url.to_s).first 
    @width = img.columns 
    @height = img.rows 
    end 

    private 
    def resolve_layout 
     case action_name 
     when 'show' 
     'image' 
     else 
     'application' 
     end 
    end 
end 

show.html.erb

<div style="background: url('<%= @image.image_url.to_s %>');"></div> 

Chrome的网络监视器第一次点击时不显示任何内容。有任何想法吗?

回答

0

检查您是否在该图像/元素上运行JavaScript。我有一次完全相同的问题,结果发现有一个脚本处理元素。希望有所帮助。

相关问题