Rails 3.1 Asset-Pipeline und manuell geordnetes Javascript benötigt
Ich versuche zu konvertieren einer vorhandenen app auf das neue 3.1 asset-pipeline-layout, und will unter anderem eine Menge Anbieter Dateien, die sich in einer bestimmten Reihenfolge, (underscore.js und Rückgrat als ein paar). Als solcher, ich kann nicht einfach ein = require_tree .
ziehen in meinem Verkäufer-Dateien, (ohne umbenennen jede Datei mit einem Präfix. Igitt).
Folgendes ist in meinem app/assets/javascripts/application.js
Datei:
//= require modernizr-1.7 //= require jquery-1.6.1 //= require Unterstrich-1.1.5 //= erfordert Rückgrat-0.3.3 //= require_tree .
Ich habe versucht, jede Kombination mit ein - /aus-Erweiterungen, mit/aus der require_tree und mit/aus die relativen Pfade, und nichts funktioniert. Alle meine Verkäufer-Dateien sind in /vendor/assets/javascripts/
.
Ich fühle mich wie ich bin dumm, denn dies scheint wie eine offensichtliche Anwendungsfall (einschließlich bestimmter Dateien nach name in einer Bestellung gemeinsam mit JS, nicht?) ich muss etwas idiotisch?
InformationsquelleAutor der Frage beseku | 2011-05-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie jede Datei in der bestimmten Reihenfolge, und dann fügen Sie hinzu:
statt:
InformationsquelleAutor der Antwort martinciu
Haben Sie zwei mögliche Struktur : der erste und der zweite.
Mit den beiden folgenden Beispielen setzen Sie ein Paket auf
/assets/externals.js
.Sie können
javascript_include_tag
dieses Paket, Sie können aber auch verlangen, dass Sie in Ihremapplication.js
Datei.Die erste
Die Datei
externals.js
enthält :Die zweite
Die Datei
index.js
enthält :InformationsquelleAutor der Antwort Romain Tribes
Meine Antwort gilt zu Rails 3.1rc4, ich weiß nicht, ob es die gleiche Funktion mit anderen Versionen.
Können Sie tatsächlich erfordern alle Aussagen in app/assets/javascripts/application.js ob oder nicht die .js-Dateien in app/assets/javascripts/oder vendor/assets/javascripts/
Etwa so:
Ich require_tree hier weil ich anderen javascript-Dateien für meine einzelnen regler (Seiten.js.Kaffee, Nutzer.js.Kaffee) und ein generelles Website-übergreifende Sachen (Website.js.Kaffee)
Mittlerweile hier ist die Datei-Struktur.
Dies ermöglicht es mir, die Last Steuern, die Reihenfolge der vendor libraries (die eine Menge Fragen, in der Regel) und nicht sorgen um meine interne javascript, wo die Bestellung in der Regel weniger wichtig.
Mir ist noch wichtiger, die Kontrolle erfordern alle Anweisungen innerhalb eines oft verwendeten Datei, ich finde, dass beide sicherer und sauberer.
InformationsquelleAutor der Antwort Olivier Lacan
Ich glaube, Sie können eine
library.js
in Ihremvendor/assets/javascripts
und dann einfachvon Ihrem
application.js
keine?InformationsquelleAutor der Antwort muxcmux
require_tree macht genau das, was Sie sagen. Wenn Sie es
lädt er die Dateien im aktuellen Verzeichnis, wo require_tree genannt wird. Wenn Sie es
dann bekommst du das javascript unter Hersteller.
Ich wusste nicht, wie die .. /.. /.. - notation, also ich habe eine Datei namens vendor/assets/javascripts/vendor_application.js enthält:
Lädt das javascript unter dem vendor-Verzeichnis.
Beachten Sie, erfordern, hat die Suche der 3-pipeline Standorten (app, lib, Verkäufer) für die Datei zu verlangen. require_tree ist wörtlich, das ist wahrscheinlich, wie es sein sollte.
Den railscast auf diese ist sehr hilfreich: http://railscasts.com/episodes/279-understanding-the-asset-pipeline
InformationsquelleAutor der Antwort justingordon