Webshot在DigitalOcean Ubuntu 14.04中的Meteor失败

时间:2016-02-03 16:44:42

标签: node.js meteor ubuntu-14.04 digital-ocean

我正在使用此代码生成pdf:

let fileUri = process.env.PWD + '/storage/orders-pdf/' + fileName;

// Commence Webshot
webshot(html_string, fileUri, options, function(error) {
  fs.readFile(fileUri, function (err, data) {
    if (err) {
        return console.log(err);
    }

    fs.unlinkSync(fileUri);
    fut.return(data);
  });
});

let pdfData = fut.wait();

但它会引发以下错误:

{ [Error: ENOENT, open '/opt/holi/storage/orders-pdf/Attributes.pdf']
   errno: 34,
   code: 'ENOENT',
   path: '/opt/holi/storage/orders-pdf/Attributes.pdf' }

试图使用npm包https://github.com/brenden/node-webshot 然后代码在localhost上完美运行,但在服务器上失败并抛出此错误:

编辑:

即使在没有以下情况下运行webshot:

fs.readFile(fileUri, function (err, data) {
  if (err) {
    return console.log(err);
  }

  fs.unlinkSync(fileUri);
  fut.return(data);
});

未创建文件..

EDIT-2:

Webshot引发错误:[Error: PhantomJS exited with return value 2]

EDIT-3: 实际问题:https://github.com/brenden/node-webshot/issues/123

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,并且花了大部分时间试图找出问题所在。我最后补充说:

"phantomPath": "/usr/bin/phantomjs"

到我的webshot选项对象。我使用的幻像路径是mup在你的服务器设置上安装phantomjs。