Как извлечь изображение URL из API и отобразить его в моем представлении - PullRequest
0 голосов
/ 02 апреля 2020

Это не проект, я просто возиться с Manga API.

Я успешно получил URL обложки из книги, но мне трудно его отобразить. Ссылка работает, но не будет отображаться в моем представлении. На нем отображается только значок с разбитым изображением.

На этом стороннем веб-сайте каждая книга имеет код 6 di git в качестве идентификатора, так что гем api работает с вводом заданного кода и извлекает информацию об этой спецификации. c book.

В качестве примера я просто поместил несколько случайных чисел и пытаюсь отобразить это как заголовок и обложку.

API gem https://github.com/groussel42/nhentai-api/blob/master/lib/nhentai-api.rb

Я могу успешно найти название книги и отобразить его в заголовке страницы. Я напечатал изображение URL, чтобы показать, что я тоже получаю ссылку.

rout.rb:

Rails.application.routes.draw do
  get 'mangas' => 'mangas#show'
end

show. 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>

1 Ответ

1 голос
/ 02 апреля 2020

вы не можете отобразить изображение, используя ссылку напрямую, потому что сервер не позволяет его, также известный как предотвращение хотлинкинга .

вы должны загрузить изображение в свой бэкэнд и затем отобразите его, используя собственную ссылку.

контроллер:

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"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...