在 DigitalOcean Ubuntu 14.04 中的 Meteor 上的 Webshot 失败
Posted
技术标签:
【中文标题】在 DigitalOcean Ubuntu 14.04 中的 Meteor 上的 Webshot 失败【英文标题】:Webshot fails on Meteor in DigitalOcean Ubuntu 14.04 【发布时间】: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 并且我还看到您正在删除文件(取消链接)。
【参考方案1】:
我遇到了类似的问题,并且花了一天的大部分时间试图找出问题所在。我最终添加了:
"phantomPath": "/usr/bin/phantomjs"
到我的 webshot 选项对象。我使用的幻像路径是 mup 在您的服务器设置上安装 phantomjs 的位置。
【讨论】:
以上是关于在 DigitalOcean Ubuntu 14.04 中的 Meteor 上的 Webshot 失败的主要内容,如果未能解决你的问题,请参考以下文章
sh Flynn安装:单节点(适用于Ubuntu 14.04 x64 @ DigitalOcean droplet)
在 Ubuntu 14.04 VPS (Digital Ocean) 上部署 Flask 应用程序的问题
需要帮助 Nginx phpmyadmin Ubuntu 14.04,无法运行 web1.com/phpmyadmin