PhantomJs:我可以从具有动态设置内容的页面访问相关资产吗?

And*_*rey 5 javascript relative-path phantomjs

给定以下文件结构:

project-folder
 |- images/
 |  |- foo.png
 |
 |- script.js 
Run Code Online (Sandbox Code Playgroud)

类似下面的Phantom脚本:

var page1 = require("webpage").create(),
  page2 = require("webpage").create();

page1.content = "<img src='images/foo.png'/>";
page2.content = "<img src='file:///path/to/project-folder/images/foo.png'/>";

// give the images some time to load
setTimeout(function () {
  page1.render("pdf1.pdf");
  page2.render("pdf2.pdf");
  phantom.exit();
}, 10);
Run Code Online (Sandbox Code Playgroud)

运行后,foo.png正确显示pdf2.pdf但不在pdf1.pdf.

我需要渲染一个包含大量具有相对路径的图像的大型HTML文件,如第1页所示.

虽然可以使用某种疯狂的正则表达式来完成标记,并在设置内容之前手动将所有图像src属性更改为脚本的工作文件夹,但我宁愿避免使用它.

我还缺少其他选择吗?

Sjo*_*erd 9

在GitHub上存在一个问题.似乎没有选项将基目录传递给PhantomJS.但是,您可以使用HTML基本标记设置基本URL .