2016-11-15 10 views
1

Apache2とPassengerを使用してUbuntuサーバに自分のレールアプリケーションを配備しようとしています。Rails - プロダクションでPDFkitが動作しない

これまでのところ、1つの問題を除いてすべてがスムーズに稼動しています。

私のアプリの一部は、html Webページからpdfを生成することです。

私はこれを行うにはpdfkitを使用しています。

gem 'pdfkit' 
gem 'wkhtmltopdf-binary' 

ローカルホストでアプリケーションを実行しているときに、pdfキットを入手して作業するための手順が見つかりませんでした。

しかし、これは良い例です:Imが持つhttps://github.com/pdfkit/pdfkit

問題は、私はpdfkitが私の資産にプリコンパイルなっていないと信じています。私が持っているapplication.rbインサイド

:私のconfig/initializers/assets.rbインサイド

require 'pdfkit' 
module RailsPdf 
    class Application < Rails::Application 
     config.middleware.use PDFKit::Middleware 
    end 
end 

を私はからか、なぜそれがそこにあるこれを得たところ、私は見つけることができませんでした

ActionController::Base.asset_host = Proc.new { |source, request| 
    if request.env["REQUEST_PATH"].include? ".pdf" 
    "file://#{Rails.root.join('public')}" 
    else 
    "#{request.protocol}#{request.host_with_port}" 
    end 
} 

を持っていました。しかし、それはラインif request.env["REQUEST_PATH"].include? ".pdf" enter image description here

に私に問題を与えていた私は、そのコードを処分したまでは自分のアプリケーションのインデックスページがまったくロードするために得ることができませんでした。私は以来、ここでは例を見てきました:https://gist.github.com/francescognarra/9665736

そして以下で上記のコードに置き換え:

PDFKit.configure do |config| 
    config.root_url = "file://#{Rails.root.join('public')}/" 
end 

私は今、アプリケーションを起動し、すべての私のページを閲覧することができます。しかし、私は新しいpdfを作成したり、以前に生成されたものを見ることはできません。私が理解しようとしない次のエラーログを取得しようとすると、

enter image description here

誰もが生産のレールとPDFkitを使用して、いくつかの強力な経験を持っていますか? そして、問題がPDFkitが正しくコンパイルされないという私の信念を確認するのに役立つでしょうか?

答えて

1

assets.rbの元のコードがどこから来たのかわかりました。

私はここからのコードだ:http://jguimont.com/post/2627758108/pdfkit-and-its-middleware-on-heroku

を私は、PDFを生成しようとしているときpdfkitは永遠にぶら下がって起因する問題にそこにそれを置きます。

私は以来でそれを交換したコード:

PDFKit.configure do |config| 
    config.root_url = "file://#{Rails.root.join('public')}/" 
end 

はうまく動作しています。

私は投稿した最後の画像にそのエラーが何であったかまだ分かりません。私はこれらのコマンド

sudo add-apt-repository ppa:ecometrica/servers 
sudo apt-get update 
sudo apt-get install wkhtmltopdf 

を追っしかし、それは問題を解決していない

PDFKit::NoExecutableError (No wkhtmltopdf executable found at /usr/local/bin/wkhtmltopdf 
>> Please install wkhtmltopdf - https://github.com/pdfkit/PDFKit/wiki/Installing-WKHTMLTOPDF): 

は、私は再びエラーを参照するには、別のPDFファイルを生成しようとしたとの明確なエラーを得ました。だから私は gem install wkhtmltopdf-binaryと言った別の記事を見て、これが最終的に問題を解決しました。

私はGemfileからインストールするように設定していても、なぜ私はそのコマンドを実行しなければならなかったのかまだ分かりません。

私はこれが他の人に役立つことを願っています。

関連する問題