Dlaczego PDFKit / wkhtmltopdf zawiesza się, ale renderuje plik PDF zgodnie z oczekiwaniami, gdy aplikacja Railsy zostanie zabita?

tło

Po przeczytaniu tego wydawało mi sięKrewetka jest poza iwkhtmltopdf jest w środkuPDFKit iwicked_pdf klejnoty dla Rails są nowe. Więc znalazłem screencast przezRyan najak korzystać z PDFKit. Zainstalowałem wszystko, przetestowałem wkhtmltopdf na CLI bez żadnych problemów, bawiłem się ustawieniami Railsów, aby uruchomić wiele procesów, tak aby potok działał poprawnie, i wszystko wydawało się dobre, z wyjątkiem tego, że wciąż tkwię na samym końcu procesu (faktycznie otrzymuję PDF odpowiedź z serwera).

Pytanie

Kiedy zażądam.pdf wersja mojego widoku (korzystam z opcji oprogramowania pośredniego PDFKit) moja przeglądarka po prostu siedzi tam, czekając na odpowiedź, ale gdy tylko zabiję Railsy, ​​w oknie przeglądarki pojawi się plik PDF, który spodziewałem się uzyskać. Co daje?

Co używamOS: OSX 10.8.1Szyny: 3.2.8Ruby: 1.9.3wkhtmltopdf: 0.11.0_rc1 (chociaż gdy uruchamiamwkhtmltopdf -V to mówi 0.10.0_rc2)qt: 4.8.2Co ja zrobiłemużywał oprogramowania pośredniego PDFKit, ładującconfig.middleware.use "PDFKit::Middleware" w moimapplication.rb plik.w zestawiegem 'pdfkit' na moim Gemfile i zainstalowałem go z BundleremUstaw.pdf typ mime w moimmime_types.rb inicjator zMime::Type.register_alias "application/pdf", :pdfdodanyconfig.threadsafe! doconfig/environments/development.rb dla wielu wątków, więc potok zasobów nie koliduje z silnikiem PDFprzetestowanywkhtmltopdf http://www.google.com google.pdf i wygenerował plik PDF strony głównej Google zgodnie z oczekiwaniamiPróbowałem zamienić PDFKit na Wicked_pdf i napotkał ten sam problem (zawieszony, ale gdy proces Railsów zostanie zabity, renderowanie PDF zgodnie z oczekiwaniami)Jak to wygląda

To jest zwykła strona html renderowana przez Railsy (zamazałem szczegóły klienta):

To jest wyjście CLI tworzone przez Rails, gdy próbuję nawigować dolocalhost:3000/some/path.pdf. (aplikacja zawiesza się podczas oczekiwania na odpowiedź):

Kiedy w końcu zabiję proces Railsctrl-c PDF w końcu pojawia się w przeglądarce, tak jak się spodziewałem (CSS i HTML renderowane poprawnie, więc zasoby wydają się ładować dobrze):

Wnioski do tej pory

Wymiana pliku PDFKit na plik wicked_pdf i uzyskanie takich samych wyników sprawia, że ​​myślę, że problem nie dotyczy tych bibliotek, ale ma coś wspólnego z moim środowiskiem programistycznym. Ale wkhtmltopdf działa dobrze z linii poleceń, więc sprawia, że ​​myślę, że to i QT wykonują swoją pracę. Problem musi być w Railsach. Może nie konfiguruję czegoś poprawnie?

Prośba o pomoc

Jak określićco dokładnie jest problem i jak go naprawić?

Będę cię kochał, jeśli możesz mi pomóc <3

Aktualizacja

Próbowałem również użyć alternatywnej metody renderowania pliku PDF (za pomocą.to_pdf) bez opcji oprogramowania pośredniego w następujący sposób (wykomentowałem toconfig.middleware.use "PDFKit::Middleware" od mojegoapplication.rb plik):

respond_to do |format|
    format.html
    format.pdf do
        html = '<html><body>This is a test.</body></html>'
        @pdf = PDFKit.new(html)

        send_data @pdf.to_pdf, 
            :filename => 'whatever.pdf', 
            :type => 'application/pdf', 
            :disposition => 'attachment'
    end
end

questionAnswers(7)

yourAnswerToTheQuestion