Sorry, wenn dies eine langwierige Aufbau zu einer einfachen Frage ist, aber ich wollte meine Gedanken klar zu bekommen.Schienen 4 statische Vermögenswerte in der Öffentlichkeit/oder App/Assets/
Ich habe jetzt Rails 4 für ein paar Projekte verwendet und ich habe image_tag('/assets/image.png')
verwendet, um die Änderungen an Asset-Pfad-Helfern in Rails 4 zu umgehen. Das ist bis heute, als ich beschloss, mehr über die Änderungen zu erfahren und gefunden this first change note in sprockets-rails. Ich habe auch bemerkt, dass die ASSET_PUBLIC_DIRECTORIES
in /actionview/lib/action_view/helpers/asset_url_helper.rb#L170 in Rails-Helfer nur auf öffentliche Ordner zeigen. Es wurde mir ziemlich offensichtlich, dass Rails, wenn Sie auf statische Dateien zugreifen, möchte, dass Sie den öffentlichen Ordner verwenden.
So, jetzt, dass ich das herausgefunden haben, ich kann einfach nicht verstehen, warum die Kantenschienen docs deutlich machen diese:
In früheren Versionen von Rails wurden alle Vermögenswerte sich in Unterverzeichnissen public wie Bilder, Javascripts und Stylesheets. Bei der Asset-Pipeline ist der bevorzugte Speicherort für diese Assets jetzt das App/Assets-Verzeichnis.
image_path in der Praxis generiert eine uri in den öffentlichen/Bilder-Ordner, die völlig entgegengesetzt ist.
Und um das alles zusammenzufassen, muss ich alle verfügbaren Helfer und Digest-Builder verwenden, weil ich am Ende meine Assets in S3 mit asset_sync bereitstellen.
Also meine Frage ist nur; Gibt es einen korrekten Ort, um Bilder/nicht kompilierte Assets zu platzieren und Asset_path Helfer zu verwenden? Bei der gesamten Dokumentation und jeder anderen Stack-Overflow-Konversation geht es um Leute, die den app/assets-Ordner verwenden, aber rackets-rails möchte, dass wir public für nicht-verdaute Assets verwenden. Benötigen die Dokumente und Informationen im Internet nur eine Aktualisierung oder werden andere nur dazu veranlasst, alle Asset-Pfade mit/assets/voranzustellen?
UPDATE: Ich glaube, ich hatte tatsächlich ein Problem, bei dem ich meinen Entwicklungsserver nicht neu startete und Bilder in der App/Assets/Bilder nicht auftauchten, so dass es auf die Öffentlichkeit zurückfallen würde. Beachten Sie auch, dass ich Asset Helper in meiner Büroklammer default_url verwendet habe (auf die verwiesen wird, um auf Assets in mehreren gefundenen Stack - Überlaufantworten zu verweisen, die Verwendung der Asset - Pfad - Helfer mit interpolierten Optionen in Büroklammer wird aber auch auf die Öffentlichkeit zurückgesetzt, da die nicht interpolierter Asset-Name würde wie eine vorhandene Datei nicht offensichtlich zu finden.
Für alle, die über Google googlen, werden Assets in den Rails Guides unter http://guides.rubyonrails.org/asset_pipeline.html beschrieben –