【问题标题】:Webshot fails on Meteor in DigitalOcean Ubuntu 14.04在 DigitalOcean Ubuntu 14.04 中的 Meteor 上的 Webshot 失败
【发布时间】:2016-05-12 23:47:46
【问题描述】:

我正在使用此代码生成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 然后代码在本地主机上完美运行,但在服务器上失败并抛出此错误:

编辑:

即使运行 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

【问题讨论】:

  • enoent - 没有这样的文件/目录。你确定路径/文件存在吗?
  • 是的!我使用另一个函数将文件保存到同一目录。
  • 好吧,操作系统通常不会撒谎 ;-) 你能展示一下你运行ls -l /opt/holi/storage/orders-pdf/Attributes.pdf时得到的结果吗?
  • drwxr-xr-x 2 meteoruser root 4096 Feb 3 08:54 orders-pdf
  • 已创建?我不明白。我只看到 readFile 并且我还看到您正在删除文件(取消链接)。

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


【解决方案1】:

我遇到了类似的问题,并且花了一天的大部分时间试图找出问题所在。我最终添加了:

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

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

【讨论】:

    猜你喜欢
    • 2018-09-22
    • 2023-03-31
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 2014-10-18
    相关资源
    最近更新 更多