【问题标题】:ActionController::RoutingError (No route matches [GET] "/images/medium/missing.png"):ActionController::RoutingError (没有路由匹配 [GET] "/images/medium/missing.png"):
【发布时间】:2014-01-20 05:06:15
【问题描述】:

这个问题 - 我认为 - 指向一个已删除的图像,但应用程序中肯定没有名为 missing 的图像。

ActionController::RoutingError (No route matches [GET] "/images/medium/missing.png"):

                  Prefix Verb   URI Pattern                    Controller#Action
                    pins GET    /pins(.:format)                pins#index
                         POST   /pins(.:format)                pins#create
                 new_pin GET    /pins/new(.:format)            pins#new
                edit_pin GET    /pins/:id/edit(.:format)       pins#edit
                     pin GET    /pins/:id(.:format)            pins#show
                         PATCH  /pins/:id(.:format)            pins#update
                         PUT    /pins/:id(.:format)            pins#update
                         DELETE /pins/:id(.:format)            pins#destroy
        new_user_session GET    /users/sign_in(.:format)       devise/sessions#new
            user_session POST   /users/sign_in(.:format)       devise/sessions#create
    destroy_user_session DELETE /users/sign_out(.:format)      devise/sessions#destroy
           user_password POST   /users/password(.:format)      devise/passwords#create
       new_user_password GET    /users/password/new(.:format)  devise/passwords#new
      edit_user_password GET    /users/password/edit(.:format) devise/passwords#edit
                         PATCH  /users/password(.:format)      devise/passwords#update
                         PUT    /users/password(.:format)      devise/passwords#update
cancel_user_registration GET    /users/cancel(.:format)        devise/registrations#cancel
       user_registration POST   /users(.:format)               devise/registrations#create
   new_user_registration GET    /users/sign_up(.:format)       devise/registrations#new
  edit_user_registration GET    /users/edit(.:format)          devise/registrations#edit
                         PATCH  /users(.:format)               devise/registrations#update
                         PUT    /users(.:format)               devise/registrations#update
                         DELETE /users(.:format)               devise/registrations#destroy
                    root GET    /                              pages#home
                   about GET    /about(.:format)               pages#about

【问题讨论】:

    标签: ruby-on-rails ruby heroku


    【解决方案1】:

    但应用中绝对没有图片被称为丢失。

    ...这就是问题所在!

    如果尚未上传图片,您的应用正在寻找要显示的图片。
    这是在您的模型中定义的,其中定义了附件(通过回形针或载波)。

    参见快速入门,例如paperclip

    class User < ActiveRecord::Base
      has_attached_file :avatar, 
        :styles => { :medium => "300x300>", :thumb => "100x100>" }, 
        :default_url => "/images/:style/missing.png" # <= you see ?
    end
    

    您需要为app/assets/images/:style 文件夹中定义的每个不同的样式(此处为mediumthumb)放置一个名为missing.png 的图像。这将由资产管道处理。 如果您只想将missing-images 上传到 S3,您需要在那里定义一个存储桶,为每个定义的 style 添加文件夹并通过绝对路径引用它们,如下所示:

    :default_url => "https://YOURBUCKET.amazons3.com/:style/missing.png"
    

    如果您将所有用户上传的内容上传到 S3,我建议您阅读 Paperclip::Storage::S3 上的优秀文档。

    【讨论】:

    • 哦,对了,你建议怎么做,上传一个默认值到图像服务器,例如。亚马逊 s3?
    • 我的管道中没有名为 app/assets/images/:style 的文件
    • 您必须创建一个名为 missing.png 的文件 - 例如链接到默认用户图标。如果您使用不同的样式(大小,如 thumblarge),:style 参数可以让您选择正确的大小。您的:default_url 应该看起来像/images/thumb/missing.png,当然您还必须为每种样式(大小)创建文件夹。
    • 没用,应用程序错误,at=error code=H10 desc="App crashed"
    • 我的回答——正如你的问题——非常抽象。如果您需要更详细的信息,请为此提出一个新问题,或者为您的问题提供更多信息,例如:1)您使用什么 gem 进行上传? 2)添加用于上传定义的模型代码 3)发布完整的错误消息。否则没有办法帮助你。
    猜你喜欢
    • 2015-07-12
    • 1970-01-01
    • 2021-06-03
    • 2018-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    相关资源
    最近更新 更多