【发布时间】: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(未找到)
我也尝试点击此链接:
但是会出现这样的错误(如果你需要,我可以在这里添加一个完整的错误):
"#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