【问题标题】:Image not found in paperclip (No route match [Get])在回形针中找不到图像(没有路线匹配 [Get])
【发布时间】:2012-08-21 06:57:41
【问题描述】:

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

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


    【解决方案1】:

    这个

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

    应该是

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

    虽然将附件保存在资产目录中是一个糟糕的主意。您可以在public 中添加另一个,例如files

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

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

    【讨论】:

      【解决方案2】:

      我在网上不断搜索后找到了正确的解决方案。我试图通过我能想到的所有概率来处理这个问题:- 权限、更正路径、将服务器从 webrick 更改为瘦服务器。然后我研究了环境属性。 因此,这是您的生产环境集中的正确答案:

        config.serve_static_assets = true
      

      这解决了问题。

      【讨论】:

      • 这是一个主要的服务器速度和潜在的服务器安全问题。我希望我能找到另一种方式。
      【解决方案3】:

      以下链接可能对您有所帮助:
      Upload image using paperclip

      【讨论】:

      • 请不要仅通过链接回答问题。此外,链接不包含与实际问题相关的信息,这是由 vidur 自己的答案支持的断言。
      猜你喜欢
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      • 2011-12-11
      • 2015-09-27
      • 2015-10-15
      • 1970-01-01
      相关资源
      最近更新 更多