Rails 3.1 Asset-Pipeline mit PDFKit

8

Ich benutze PDFkit mit Schienen 3.1. In der Vergangenheit war ich in der Lage, die render_to_string-Funktion zu verwenden und eine PDF-Datei aus dieser Zeichenfolge zu erstellen. Ich füge dann die Stylesheets wie folgt hinzu. Mein Problem ist, dass ich keine Ahnung habe, wie ich über die Asset-Pipeline auf sie zugreifen kann. (So ​​habe ich es in Rails 3.0 gemacht)

%Vor%

Also meine Frage, wie bekomme ich direkten Zugriff von meinem Controller auf meine CSS-Datei über die Asset-Pipline?

Ich weiß, dass ich die Rack-Middleware mit PDFkit verwenden kann, um die PDF-Datei im Browser darzustellen, aber in diesem Fall muss ich die PDF-Datei an einen Faxdienst eines Drittanbieters senden.

Danke für Ihre Hilfe.

Ryan

    
lundie 18.11.2011, 18:48
quelle

6 Antworten

3

Ich bin gerade auf dieses Problem gestoßen und habe es auch ohne die Asset-Pipeline geschafft, habe aber direkt auf die Datei zugegriffen, wie ich es zuvor in / public getan hätte. Ich weiß nicht, was die möglichen Nachteile für diesen Ansatz sind.

Ich nehme an, dass LESS- und SCSS-Dateien nicht so verarbeitet werden, als hätten sie Zugriff über die Asset-Pipeline.

%Vor%     
Constant Meiring 22.05.2012 21:45
quelle
1

Ein bisschen spät, aber besser spät als nie, wie.

Ich würde es so machen:

%Vor%     
zenw0lf 26.09.2013 21:01
quelle
0

In Rails 3.1.1 Stylesheets werden in / public / assets mit und ohne Digest-Fingerabdruck geschrieben.

Dies bedeutet, dass Sie in der Lage sein sollten, auf diese Dateien zu verweisen, indem Sie einfach den Pfad in Ihrem Code ändern.

Allerdings: Wenn das PDF-Blatt nicht in einem CSS-Manifest referenziert wird, müssen Sie es der precompile-Konfiguration hinzufügen:

config.assets.precompile += ['trade_request.css']

Das weist Ritzel an, diese Datei selbst zu kompilieren.

Sehen Sie als (bessere) Alternative nach, ob der Asset_path-Helfer in Ihrem Code funktioniert. Dies verweist auf die korrekte Datei in Entwicklung und Produktion.

    
Richard Hulse 18.11.2011 19:25
quelle
0

Am Ende habe ich die css-Datei in mein öffentliches Verzeichnis kopiert und auf dieselbe Weise wie zuvor mit rails 3 referenziert. Weitere Informationen finden Sie in dieser Frage: Zugriff auf stylesheet_link_tag vom Controller

    
lundie 12.01.2012 18:55
quelle
0

Ich bin hier gelandet, um dieses Problem zu lösen, und keine der Antworten schien das Problem für mich zu lösen. Ich fand die angenommene Antwort dieses Stapelüberlaufpfostens für mich:

Wie geht es einem Referenz kompilierte Assets von der Steuerung in Rails 3.1?

Ich war sogar in der Lage, .css.erb Dateien mit dieser Methode zu bedienen.

    
Barry 09.08.2016 16:06
quelle
-1

Sie sollten mit dieser Methode auf das Stylesheet zugreifen können:

ActionController::Base.helpers.asset_path("trade_request.css")

Machen Sie Ihren Code:

%Vor%     
Paul Simpson 11.01.2012 21:35
quelle