如何在Puppeteer中的所有相对URL中添加绝对路径(本地html文件应从网络加载图像以生成PDF)

时间:2019-04-20 10:49:01

标签: pdf url path reference puppeteer

我已将一个网页保存到本地磁盘(纯html文件,无更改)。

当尝试使用Puppeteer创建PDF时,缺少具有相对路径的图像。此外,PDF中的所有相对href链接都指向一个不存在的本地地址,而不是指向网页上正确的地址(该地址为“ http://www.example.com/”加上相对URL)

是否可以在Puppeteer中定义一个添加到所有相对URL(图像,链接,css,js)的前缀,因此将“ http://www.example.com/”添加到所有以“ /”开头的相对URL html文件?

1 个答案:

答案 0 :(得分:1)

使用base元素可以做到这一点。从文档中:

  

HTML <base>元素指定用于文档中包含的所有相对URL的基本URL。一个文档中只能有一个<base>元素。

请注意,必须在具有URL属性的其他元素之前指定此名称。这意味着无法执行某些JavaScript来更改已渲染页面的行为。相反,您应该在呈现HTML之前对其进行更改。

在渲染之前将基本元素添加到HTML代码中,使其看起来像这样:

<!DOCTYPE html>
<html>
<head>
  <base href="http://www.example.com/">
...