PhantomJS无法打开本地文件

AvL*_*AvL 34 phantomjs

我试图用PhantomJS(版本1.9.2)打开一个本地HTML文件:

var page = require('webpage').create(), fs = require('fs'),
    address = "/Full/Path/To/test.html";

console.log('isFile? ' + fs.isFile(address));
console.log('isReadable? ' + fs.isReadable(address));
page.open(address, function(status){
    console.log('status? ' + status);
    console.log(page.content)
    phantom.exit();
});
Run Code Online (Sandbox Code Playgroud)

首先,我检查是否有正确的路径,如果文件是可读的使用fs.isFile()&fs.isReadable().然后我检查phantomjs是否成功打开文件(with status).独立于文件的实际内容我总是得到:

isFile? true
isReadable? true
status? fail
<html><head></head><body></body></html>
Run Code Online (Sandbox Code Playgroud)

所以文件和路径似乎没问题 - 但PhantomJS无法打开它!有什么建议?

Cyb*_*axs 54

PhantomJS可以毫无问题地打开本地文件.该网址必须遵循经典的Url/Uri规则,尤其是对于本地文件.

/Full/Path/To/test.html对PhantomJS无效.它是本地文件还是Web资源?

根据路径,尝试使用以下内容:

file:///C:/Full/Path/To/test.html
Run Code Online (Sandbox Code Playgroud)

或者如果它托管在Web服务器中:

http://localhost/Full/Path/To/test.html
Run Code Online (Sandbox Code Playgroud)

  • @MiguelAlejandroFuentesLopez:Unix路径不是[RFC 3986](http://tools.ietf.org/html/rfc3986)中描述的完整统一资源标识符. (10认同)