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
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%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.
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
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.
Sie sollten mit dieser Methode auf das Stylesheet zugreifen können:
ActionController::Base.helpers.asset_path("trade_request.css")
Machen Sie Ihren Code:
%Vor%Tags und Links ruby-on-rails asset-pipeline pdfkit