我试图用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无法打开它!有什么建议?
在我的node.js应用程序中,我有可以传递的函数
操作系统风格的路径,例如c:\ my\docs\mydoc.doc(或/usr/docs/mydoc.doc或其他什么是本地的)
文件URL,例如file:// c:/my/docs/mydoc.doc(我不确定'\'的有效性?)
无论哪种方式,我需要检查它们是否引用一个特定的位置,它将始终作为本地OS风格的路径存在,例如c:\ mydata\directory \或/ usr/mydata /目录
显然对于OS风格的路径我可以将它们比作字符串 - 它们应该总是相同(它们是用路径创建的)但是FILE:// URLS不一定使用path.sep,因此不会"字符串匹配" "?
关于处理这个的最佳方法的任何建议(我个人试图通过任何一种或多种斜线打破一切,然后检查每一块?