ruby-on-rails - 如何从 API 中检索 URL 的图像并将其显示在我的视图中
问题描述
这不是一个项目,我只是在搞乱漫画 API。
我成功地从一本书中检索到封面的 URL,但我很难显示它。该链接有效,但不会显示在我的视图中。它仅显示损坏的图像图标。
在这个第三方网站中,每本书都有一个 6 位数的代码作为标识符,因此 api gem 可以输入给定的代码,它会检索有关这本书的信息。
作为一个例子,我只是放了一些随机数,我试图像标题和封面一样显示它。
API gem https://github.com/groussell42/nhentai-api/blob/master/lib/nhentai-api.rb
我可以成功检索书名并将其显示在页面标题中。我打印了 URL 的图像只是为了表明我也在检索链接。
路线.rb:
Rails.application.routes.draw do
get 'mangas' => 'mangas#show'
end
显示.html.erb
<h1>Showing <%= @manga.title %></h1>
<%= @manga.cover%>
<%= image_tag @manga.cover %>
mangas_controller.rb
class MangasController < ApplicationController
def show
@manga = Doujinshi.new(250164)
end
end
以下是我的观点内容:
<html>
<body>
<h1>Showing (C94) [OrangeMaru(YD)] Yaou (Fate/Grand Order) [English] [KyuSee]</h1>
https://t.nhentai.net/galleries/1302012/cover.jpg
<img src="https://t.nhentai.net/galleries/1302012/cover.jpg">
</body></html>
解决方案
不能直接使用链接显示图片,因为服务器不允许,也称为防盗链。
您必须在后端下载图像,然后使用您自己的链接显示它。
控制器:
require "open-uri"
File.open('public/cover.jpg', 'wb') do |fo|
fo.write open("https://t.nhentai.net/galleries/1302012/cover.jpg").read
end
看法:
<img src="cover.jpg"/>
推荐阅读
- java - Values don't get inserted into the DB, even tho I don't get any errors
- iis - How to modify iis appconfig.config xml file using appcmd?
- javascript - 如何计算和获取数组字段mongodb中结构元素的分布?
- android - Sending AT commands to a modem
- swift - 获取 JSON,将其解析为数组,然后在 Swift 中打印
- javascript - howto paginate my search result in handlebars
- android - 清单注册的活动不再与意图过滤器一起使用
- excel - 按标题选择一列并使用宏 ROUND 到最近的一分钱
- mysql - 使用 IN 插入获取不同的值,同时执行 INNER JOIN
- javascript - jQuery 事件处理程序不会在 Bootstrap 下拉切换的连续点击时触发