【问题标题】:When try to display an image, the error “404 not found” appears尝试显示图像时,出现错误“404 not found”
【发布时间】:2018-10-12 04:51:55
【问题描述】:

我使用 Rails Api 5.1.6 作为后端。作为客户,我使用 Angular 4。所有数据都存储在 Oracle 数据库中。数据库中的图像以“Blob”格式存储。我还使用回形针 gem 来处理 Rails Api 上的图像。

所以当我尝试在客户端显示图像时,出现错误“404 not found”。这是控制台中的错误:

GET http://localhost:4200/photos/original/missing.png404(未找到)

我也尝试点击此链接:

http://localhost:3000/photos/original/missing.png

但是会出现这样的错误(如果你需要,我可以在这里添加一个完整的错误):

"#ActionController::RoutingError: 没有路由匹配 [GET] "/photos/original/missing.png""

JSON:

[
{
l_users_id: 65,
photo: "/photos/original/missing.png"
},
{
l_users_id: 1,
photo: "/photos/original/missing.png"
},
{
l_users_id: 1357,
photo: "/photos/original/missing.png"
},
{
l_users_id: 1358,
photo: "/photos/original/missing.png"
},
{
l_users_id: 51,
photo: "/photos/original/missing.png"
},
{
l_users_id: 2,
photo: "/photos/original/missing.png"
},
{
l_users_id: 1360,
photo: "/photos/original/missing.png"
},
{
l_users_id: 0,
photo: "/photos/original/missing.png"
},
{
l_users_id: 1372,
photo: "/photos/original/missing.png"
},
{
l_users_id: 1371,
photo: "/photos/original/missing.png"
},
{
l_users_id: 1370,
photo: "/photos/original/missing.png"
},
{
l_users_id: 1373,
photo: "/photos/original/missing.png"
}
]

photos_controller.rb:

class PhotosController < ApplicationController

    def index
        @photos = Photo.all

    array = @photos.map do |photo|
        photo_push = {
            l_users_id:      photo.l_users_id,
            photo:           photo.photo.url
        }

        photo_push
    end

    render json: array
  end

    def show
        @photo = Photo.find(params[:id])
        photo_hash = {
            l_users_id:      photo.l_users_id,
            photo:           photo.photo.url
        }

        render json: photo_hash
    end

end

照片.rb:

class Photo < ActiveRecord::Base
  self.primary_key = "l_users_id"

  has_attached_file :photo

  validates_attachment_presence :photo
  validates_attachment_content_type :photo, :content_type => ['image/jpeg', 'image/png']

end

【问题讨论】:

  • 我已经尝试将 URL 从这个"/photos/original/missing.png" 更改为这个"/photo/original/missing.png"
  • 在 localhost 3000 中将其作为路由...使用完整路径 localhost:3000/public/photos/original/missing.png
  • @RamAnji 没有帮助,我的文件夹是空的
  • 那么你的图片在哪里存储...检查照片文件夹是否有图片?
  • @RamAnji 图像存储在数据库中还是需要从那里提取

标签: ruby-on-rails ruby angular paperclip


【解决方案1】:

src="http://localhost:8080/images/missing.png"

将其移至public/images 文件夹

【讨论】:

    猜你喜欢
    • 2021-06-16
    • 2017-10-19
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    相关资源
    最近更新 更多