3

私のRails 3.1アプリはPDFkitを使用して特定のページをレンダリングしています.pdfを生成しようとするとプロセスがハングするという一般的な問題に遭遇しています。このソリューションは、stackoverflow: rails 3 and PDFkit で見つかりました。config.threadsafe!私の development.rb ファイルにエントリを追加すると、これは機能しますが、アプリのどこかで変更を加えるたびに、変更を確認するためにサーバーを停止して再起動する必要がありますワークフローからは受け入れられません - 私は現在、PDF ページのスタイル設定を行っていますが、これを行うには非常に時間がかかります。

ここでも同じ問題が報告されていることがわかりました: https://github.com/jdpace/PDFKit/issues/110、問題はこの回避策を示しています: http://jguimont.com/post/2627758108/pdfkit-and-its -middleware-on-heroku .

 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
}

これにより、変更をやり直す必要がなくなりますが、pdf を読み込むと、パブリック ディレクトリからアセットを取得しているため、アセット パイプラインからスタイルがレンダリングされません。public フォルダーにある pdf テンプレートのスタイルシートを作成する方法を知っていれば、このソリューションを使用できると思います。これがすべて同期して動作しているPDFKitとRails3.1で開発している人はいますか?

どんな助けでも大歓迎です!ありがとう!トニー

4

3 に答える 3

2

私が使用しているセットアップは次のとおりです。

  1. rails server -p 3001 -e testPDF のアセットを処理するRails サーバーの 2 番目のインスタンスを実行します。サーバーは、アセット リクエストが受信されるとそれを出力するので、すべてが期待どおりに機能することを確認できます。

  2. ファイルで次asset_hostを使用します。config/environments/development

    config.action_controller.asset_host = ->(source, request = nil){
      "http://localhost:3001" if request && request.env['REQUEST_PATH'].include?(".pdf")
    }
    
于 2011-11-22T22:31:00.117 に答える
1

Powを使用している場合は、複数のワーカーを使用できます。これを〜/.powconfigに追加します

export POW_WORKERS=3

Powマニュアルから取得)

于 2012-11-21T10:03:38.057 に答える
0

Rails 3.1 の pdfkit に問題があります。この関連する質問に対する私の回答を参照してください。

pdfkit は pdf のスタイルを設定しません

于 2012-02-22T21:13:18.060 に答える