0

localhost 上的测试正在按预期运行 wicked-pdf gem 输出。它依赖于 wkhtmltopdf。

根据此处的指示,我确定并验证了该目录在 Ubuntu 18.04 开发服务器上的存在:

~/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/wkhtmltopdf-binary-0.12.5.4/bin 

然后更改了访问权限

chmod -R 777 ~/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/wkhtmltopdf-binary-0.12.5.4/bin

是的,bundle install退货

Using wkhtmltopdf-binary 0.12.5.4

which wkhtmltopdf 返回

/home/deploy/.rbenv/shims/wkhtmltopdf

虽然wickedPDF gem 说明 鼓励创建初始化程序。但是目录/usr/local/bin/ 中只有两个文档:bundle 和 bundler。所以我对发生的事情一无所知......

仍然访问调用.pdf扩展的操作会返回错误

RuntimeError in [class]Controller#pdf
Location of wkhtmltopdf unknown

如何正确访问 wkhtmltopdf?

4

1 回答 1

0

解决方案的所有要素都在问题中。

一个被遗忘的元素是服务器是多用户的,而 wkhtmltopdf 最初是由另一个用户安装的。正如wkhtmltopdf gem 页面所述,安装过程中存在权限问题;然后观察到这些权限已分配给其他用户。

根据 wicked PDF gem 的链接,创建一个初始化程序,其中包含:

WickedPdf.config = {
  exe_path: '/home/deploy/.rbenv/shims/wkhtmltopdf'
}

解决了这个问题。

于 2020-04-19T07:43:08.157 回答