PDF-Generierung hängt auf Schienen 4 mit PDFKit gem

8

Ich kann eine PDF-Datei herunterladen mit:

%Vor%

Das bedeutet, dass die Installation von wkhtmlpdf erfolgreich war.

Aber wenn ich versuche, eine PDF-Datei zu erzeugen, indem ich auf http://localhost:3000/contacts/1.pdf zugreife, hängt es. In der Statusleiste wird angezeigt: Waiting for localhost...

Rails Server-Ausgabe:

%Vor%

Gemfile:

%Vor%

application.rb:

%Vor%

Laut dem PDFKit-Railscast sollte dies ausreichen, um PDF-Dateien zu generieren, indem Sie einfach .pdf ...

UPDATE:

show.html.erb:

%Vor%

layouts / application.html.erb:

%Vor%

UPDATE 2:

Danke an @Arman H, dass er mir geholfen hat, herauszufinden, dass ich absoluten Pfad für Assets angeben muss, anstatt für relative Assets. Als ich die folgenden Zeilen entfernte, konnte ich eine PDF-Datei erzeugen:

%Vor%

Nun kann ich nicht sagen, wie ich das durch absolute Pfade ersetzen soll. Es scheint, dass dies Post ist, was ich brauche, aber ich kann immer noch nicht herausfinden, wie das für meinen Fall aussehen würde.

    
Askar 28.07.2013, 12:47
quelle

3 Antworten

8

Das Problem war auf stylesheet_link_tag und javascript_include_tag bei Verwendung relativer URLs zurückzuführen, was oft dazu führt, dass wkhtmltopdf hängen bleibt, wenn Assets von demselben Server geladen werden, auf dem wkhtmltopdf ausgeführt wird.

Die Verwendung von absoluten URLs für Assets löste das Problem.

Setzen Sie asset_host in der Konfiguration von Rails, was sich auch auf stylesheet_link_tag und javascript_include_tag auswirkt:

%Vor%     
Arman H 01.08.2013, 03:09
quelle
3

Einstellung config.action_controller.asset_host = "http://localhost" in development.rb funktionierte eigentlich nicht für mich. Das heißt, die PDF-Generierung würde funktionieren, aber beim Rendern von HTML würden die Assets nicht durchkommen.

Ich folgte der Methode hier: Ссылка

und es hat wie ein Zauber für mich funktioniert. Hoffe, das hilft jemandem. Werfen Sie einfach Assets.rb in Config / Initializer und Sie sind gut zu gehen.

    
gregblass 04.04.2014 04:25
quelle
0

Ich hatte das gleiche Problem, bei dem mein Protokoll zeigte, dass die Seite gerendert wurde, jedoch wurde keine PDF generiert und der Browser würde hängen. Am Ende hatte es nichts mit OS-Kompatibilität, fehlenden Librariern, Gems oder Abhängigkeiten zu tun, sondern ich musste die maximal zulässige Thread-Anzahl für meinen Puma-Server (die auf 1 gesetzt wurde) auf 2 oder mehr erhöhen. Dies erzeugt dann PDF's als normal.

    
bkunzi01 10.07.2017 13:10
quelle