【问题标题】:carrierwave doesn't render, path exists but image doesn't show up载波不渲染,路径存在但图像不显示
【发布时间】:2012-05-23 16:24:29
【问题描述】:

我一直在尝试从载波渲染图片。我相信它已正确上传,因为当我查看页面源时,我看到了

<img alt="Photo_44" src="/uploads/user/image/59/Photo_44.jpg" />

但是通过单击该 src url,我得到了

No route matches [GET] "/uploads/user/image/59/Photo_44.jpg"

我使用的是载波的默认设置。图像确实正确上传到我的用户表中的图像列和本地路径

sasha/Desktop/rails_projects/myproject/public/uploads/user/image/59/Photo_44.jpg

也存在。但是它不会正确显示。我一直在关注railscasts

http://railscasts.com/episodes/253-carrierwave-file-uploads?autoplay=true

阅读

https://github.com/jnicklas/carrierwave

但我似乎无法弄清楚出了什么问题。我上传图片的地方在这里

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), 
            :html => { :method => :put, :multipart => true }) do |f| %>
    <%= devise_error_messages! %>
    <%= render '/shared/fields', object: f.object, f: f %>
    <%= f.submit "Save changes", :class => "btn btn-large btn-primary", :style =>"display:block;" %>
    <div class="edit_avatar" >
        <%= f.file_field :image %>
    </div>
<% end %>

我试图通过...渲染它

<%= image_tag @user.image_url.to_s %>

我做错了什么? 帮助将不胜感激=) 谢谢

【问题讨论】:

    标签: ruby-on-rails carrierwave


    【解决方案1】:

    如果您还没有尝试设置config.serve_static_assets = true,应该会有所帮助。

    【讨论】:

    • 哦,伙计,我将其设置为 false,因为当我将其设置为 true 时,它​​会完全打乱我的 jquery/bootstrap 加载。当我将它设置为 true 时,我得到了这个奇怪的 jquery/bootstrap 问题。你能想到其他解决方案吗?
    • 虽然在生产中,它应该设置为 false 对吧?所以它可能会在生产中搞砸了,对吧?
    • 天哪,将其设置为 true 确实可以解决问题。但它会阻止我的引导程序再次工作
    • 是的,它应该在生产中设置为 false,并且静态文件应该由您的 Web 服务器(nginx、apache)提供服务,但这是开始调试它的好地方。将您的 Web 服务器设置为从您的 Rails 应用程序的公共目录中提供文件,一切都应该没问题。
    • 您是否必须明确设置 Web 服务器来提供静态文件?我在 Heroku 上阅读,他们建议使用 Thin
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多