phantomjs在一台机器上工作,但在另一台机器上运行完全相同的命令时会返回错误
Can't find variable: $
包含二进制文件,脚本和其他文件的phantomjs文件夹是两台计算机上相同源的副本。
两台机器都是centos。
我正在运行的命令是以PDF格式打印网页的命令。它在第一台机器上工作正常。
命令
/opt/phantomjs/bin/phantomjs script.js url
的script.js
...
page.open(req.url, 'get', function (status) {
...
page.evaluate(function() {
var elements = document.getElementsByClassName('no-print');
while(elements.length > 0){
elements[0].parentNode.removeChild(elements[0]);
}
});
page.render(output, {format:'pdf'});
...
phantom.exit();
});
我缺少什么设置?
更新
手动包含jquery后,我没有收到错误,但是性能非常慢,结果只有一个空页。
我在脚本中没有使用jquery的情况下尝试了两台机器,第二台没有使用jquery。
答案 0 :(得分:2)
尝试从托管网站明确包含jquery:page.includeJs('http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js', function(){<your logic>});
。 Jquery仅在您访问的网页包含或添加时才可用。
答案 1 :(得分:1)
我的问题的解决方法是添加
127.0.0.1 hostname.com
到
/etc/hosts