2016-11-15 1 views
1

임 Apache2와 Passenger가있는 우분투 서버에 레일 애플리케이션을 배치하려고합니다.레일즈 - PDFkit이 프로덕션 환경에서 작동하지 않습니다.

지금까지 한 가지 문제를 제외하고 모든 것이 원활하게 실행되고 있습니다.

내 응용 프로그램의 일부는 html 웹 페이지에서 pdf를 생성하는 것과 관련이 있습니다.

나는 pdfkit을 사용하여 이것을 수행합니다.

gem 'pdfkit' 
gem 'wkhtmltopdf-binary' 

나는 최대 PDF 키트를 받고 내 로컬 호스트에서 응용 프로그램을 실행할 때, 작업을위한 다음 지침을 찾을 수 없습니다. 문제는 임 가진 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에서 설치하도록 설정 한 경우에도 해당 명령을 실행해야하는 이유가 확실하지 않습니다.

다른 사람에게 도움이되기를 바랍니다.

관련 문제