Как добавить абсолютный путь ко всем относительным URL в Puppeteer (локальный HTML-файл должен загружать изображения из Интернета для создания PDF) - PullRequest
1 голос
/ 20 апреля 2019

Я сохранил одну веб-страницу на локальный диск (чистый html-файл, без изменений).

При попытке создать PDF с помощью Puppeteer изображения с относительными путями отсутствуют. Кроме того, все относительные ссылки href в PDF-файле ссылаются на несуществующий локальный адрес, вместо того, чтобы указывать на правильные адреса на веб-странице (это будет "http://www.example.com/" плюс относительный URL)

Можно ли определить префикс в Puppeteer, который добавляется ко всем относительным URL-адресам (изображениям, ссылкам, CSS, JS), поэтому "http://www.example.com/" добавляется ко всем относительным URL-адресам, начинающимся с" / "в HTML-файл?

1 Ответ

1 голос
/ 20 апреля 2019

Это можно сделать с помощью элемента base. Из документов:

Элемент HTML <base> указывает базовый URL-адрес, который будет использоваться для всех относительных URL-адресов, содержащихся в документе. В документе может быть только один элемент <base>.

Имейте в виду, что это должно быть указано перед другими элементами с атрибутами, которые являются URL-адресами. Это означает, что невозможно выполнить какой-либо JavaScript, чтобы изменить поведение уже отображенной страницы. Вместо этого вы должны изменить HTML перед его рендерингом.

Добавьте базовый элемент в HTML-код перед его рендерингом, чтобы он выглядел следующим образом:

<!DOCTYPE html>
<html>
<head>
  <base href="http://www.example.com/">
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...