Rails: Externen JavaScript einbeziehen

7

Ich möchte eine JavaScript-Bibliothek wie ein jQuery-Plugin verwenden. Verwende ich die Rails-Asset-Pipeline? Oder sollte ich es mit einem javascript_include_tag einschließen? Was sind meine Optionen und was ist die empfohlene Praxis?

    
Daniel Kehoe 21.09.2012, 13:43
quelle

2 Antworten

24

Verwenden Sie die JavaScript-Bibliothek nur auf wenigen Seiten oder in der gesamten Anwendung? Wenn Sie es in der gesamten Anwendung verwenden möchten, verwenden Sie die Asset-Pipeline, indem Sie sie zum Ordner vendor / assets / javascripts hinzufügen. Wenn Sie die Bibliothek auf einer einzelnen Seite verwenden möchten, verwenden Sie javascript_include_tag .

Hier sind Faustregeln, die Sie bei der Verwendung von JavaScript in Rails unterstützen:

  • Ordnen Sie Ihre Site-weiten Skripts logisch im Ordner app / assets / javascripts / an.

  • Kopieren Sie externe JavaScript-Bibliotheken (z. B. jQuery-Plugins) in den Ordner vendor / assets / javascripts .

  • Führen Sie websiteweite Skripts im Manifest app / assets / javascripts / application.js auf.

  • Lassen Sie die Rails-Asset-Pipeline alle in einer minimierten Datei application.js kombinieren.

  • Laden Sie Skripts, die auf einigen Seiten mit wenigen Besuchen verwendet werden, als seitenspezifisches JavaScript.

  • Platzieren Sie seitenspezifisches JavaScript im Ordner lib / assets / javascripts .

Verwenden Sie für seitenspezifisches JavaScript <%= yield(:head) %> im Anwendungslayout und <% content_for :head ... %> in der Ansicht.

Eine vollständige Erklärung mit allen Details finden Sie in meinem Artikel:

  

Externe JavaScript-Dateien in Rails einbinden

    
Daniel Kehoe 21.09.2012, 13:43
quelle
2

Um auf Javascript in einer einzelnen Datei zuzugreifen, ist javascript_include_tag die beste Option.

Damit kannst du ' Rails.application.config.assets.precompile += %w( yourfilename.js ) ' zu deiner ' config/initializers/assets.rb ' Datei hinzufügen.

    
Shehryar 06.08.2014 07:50
quelle