CarrierWave/Cloudinary 缓存的图像在开发环境中无法跨表单重新显示

Posted

技术标签:

【中文标题】CarrierWave/Cloudinary 缓存的图像在开发环境中无法跨表单重新显示【英文标题】:CarrierWave/Cloudinary cached images not working across form redisplays in dev environment 【发布时间】:2014-07-29 08:50:22 【问题描述】:

当表单出现错误时,不会显示缓存的图像。它正在尝试去 Cloudinary 服务器并下载一个不存在的图像。

以下是源代码的最终结果:

       <div class="form-group">
          <label class="col-sm-3 control-label" for="guide_image">Image</label>
          <div class="col-sm-9">
            <img  src="http://res.cloudinary.com/memorycommit/image/upload/ho97jzyhfjludw129u8m.jpg" />
            <input class="form-control" id="guide_image" name="guide[image]" type="file" />
            <input id="guide_image_cache" name="guide[image_cache]" type="hidden" value="1402249607-3970-6368/mountain-top-med.jpg" />
          </div>
        </div>

这是我的图像查看代码:

       <div class="form-group">
          <%= f.label :image, class: "col-sm-3 control-label" %>
          <div class="col-sm-9">
            <%= image_tag(@guide.image_url) if @guide.image? %>
            <%= f.file_field :image, class: "form-control" %>
            <%= f.hidden_field(:image_cache) %>
          </div>
        </div>

image_uploader.rb

class ImageUploader < CarrierWave::Uploader::Base

  include Cloudinary::CarrierWave

  version :standard do
    process :resize_to_fill => [220, 220, :north]
  end

  version :thumbnail do
    resize_to_fit(120, 120)
  end
end

我做错了什么?

【问题讨论】:

【参考方案1】:

很遗憾,cl_image_tag 方法不支持返回本地 URL(例如来自 image_cache 的图像)。

【讨论】:

我很困惑....cl_image_tag 是什么?我正在使用image_tag。那是一样的吗?如果是这样...您对我应该改用什么有什么建议吗?

以上是关于CarrierWave/Cloudinary 缓存的图像在开发环境中无法跨表单重新显示的主要内容,如果未能解决你的问题,请参考以下文章

Carrierwave Cloudinary 集成 Ruby on Rails

什么是缓存?一级缓存?二级缓存?

一级缓存和二级缓存有啥区别

什么是一级缓存,什么是二级缓存?

一级数据缓存,一级指令缓存和二级缓存有啥区别?

浏览器缓存和服务器缓存