在回形针中找不到图像(没有路线匹配[获取])

问题描述 投票:2回答:3

我正在使用回形针进行图像上传:我收到错误消息:

Started GET "/assets/audios/thumbnails/7/thumb/4_X_4.jpg?1345530644"
for 127.0.0.1 at 2012-08-21 12:03:04 +0530
Served asset /audios/thumbnails/7/thumb/4_X_4.jpg - 404 Not Found (1ms)<br/>
ActionController::RoutingError (No route matches [GET] "/assets/audios/thumbnails/7/thumb/4_X_4.jpg"):<br/>

在我的模型中为:

has_attached_file :thumbnail,
:styles => {:medium => "300x300>", :thumb => "100x100>"},
:url => "assets/:class/:attachment/:id/:style/:basename.:extension",
:path => ":rails_root/assets/:class/:attachment/:id/:style/:basename.:extension" 
ruby-on-rails ruby ruby-on-rails-3 paperclip
3个回答
-6
投票

以下链接可能会帮助您:Upload image using paperclip


2
投票

:url => "assets/...",
:path => ":rails_root/assets/..."

应该是

:url => "/assets/...",
:path => ":rails_root/public/assets/..."

尽管将附件保存在资产目录中是一个糟糕的主意。您可以在files中包含另一个,例如public

:url => "/files/:class/:attachment/:id/:style/:basename.:extension",
:path => ":rails_root/public/files/:class/:attachment/:id/:style/:basename.:extension"

保存在public/files内并使用/files网址将使Web服务器在Rails之前命中文件(当然,正确配置Web服务器,例如nginx是另一个问题)


1
投票

我在网上连续搜索后找到了正确的解决方案。我试图通过所有可能出现的概率来解决该问题:-权限,更正路径,将服务器从webrick更改为Thin。然后,我研究了环境属性。因此,这是生产环境集中的正确答案:

  config.serve_static_assets = true

这解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.