Ist es eine gute Vorgehensweise, unter Öffentlichen Ordnern befindliche Elemente zu verwenden? z.B. Ich habe viele Javascript unter public/mythirdparyjs Ordner und ich möchte diese Javascript-Dateien nur für bestimmte Seite verfügbar machen, was wird der beste Weg, dies zu tun?Rails Asset-Pipeline benötigen von öffentlichen Ordner?
Antwort
Drittanbieter-JS-Dateien sollten in Ihrem Lieferantenordner sein. Sobald Sie sie für die Produktion vorkompilieren, werden sie automatisch in Ihren öffentlichen Ordner verschoben. Um bestimmte Dateien auf bestimmten Seiten aufzurufen, müssen Sie die require_tree-Direktive entfernen und auch darauf achten, welche Dateien in Ihrer Asset-Datei application.js aufgerufen werden. Am Ende jeder Ansichtsseite (html.erb) können Sie den folgenden Code zu nur speziell für diese Seite js läuft:
<%= content_for :javascript do %>
<script type='text/javascript'>
YOUR FUNCTIONS HERE
</script>
<% end %>
dann in Ihrer Anwendung/Layout-Ansicht auf dem Boden vor dem schließenden Body-Tag Sie hinzufügen sollen:
<%= javascript_include_tag params[:controller] if Rails.application.assets_manifest.assets["#{params[:controller]}.js"] %>
<%=yield :javascript %>
Dies wird dann alle js auf einer Seite für Seite view-Basis ausgeführt und umfassen jegliche Aussagen erfordern für alle Dateien in den entsprechenden Controller js Asset-Datei.
UPDATE um einen Kommentar abzugeben: Wenn Sie ein Juwel installiert haben und dann bestimmte js Dateien benötigen, sollten diese aus Ihrem app/assets/javascripts Ordner in der Datei application.js benötigt werden (wenn Sie dieses Juwel wollen um in Ihrer Anwendung verwendbar zu sein) oder in der Controller-spezifischen js-Datei, wenn Sie diese Funktionalität nur auf einigen Seiten benötigen. Zum Beispiel wird der eckige Edelstein wahrscheinlich in der gesamten Anwendung verwendet, sodass Sie die // = require-Anweisung zur Datei application.js in Ihrem Ordner app/assets/javascripts hinzufügen. Wenn Sie einige js-Bibliotheken manuell herunterladen, sollten Sie sie in den Ordner vendor/javascripts einfügen, aber Sie benötigen sie immer noch in Ihren app/assets/javascripts-Ordnerdateien, wo immer sie benötigt werden.
- 1. Ruby on Rails Pfad zum öffentlichen Ordner
- 2. Rails 4 - Serving ein Bild aus dem öffentlichen Ordner
- 3. Rails 5.1: URL-Helper für Dateien im Öffentlichen Ordner
- 4. Ruby on Rails zeigt nur, was in Öffentlichen Ordner ist
- 5. Export in Öffentlichen Ordner mit axlsx
- 6. Speicher :: makeDirectory im Öffentlichen Ordner
- 7. Verhindern, dass bestimmte Ordner im Öffentlichen Ordner gelöscht werden capistrano rails
- 8. Speichern Sie XML in Outlook Öffentlichen Ordner
- 9. Laravel 5.1 Weg zum öffentlichen Ordner direkt
- 10. Laravel 5.2 view set zu Öffentlichen Ordner
- 11. sollte ich Assets Ordner oder Öffentlichen Ordner verwenden? Laravel 5.3
- 12. Livereload nur bei Änderungen im Öffentlichen Ordner
- 13. Wie Datei über öffentlichen Ordner Laravel 5.1
- 14. Importieren eines Raumkalenderkalenders aus einem öffentlichen Ordner
- 15. Statischen Inhalt in den öffentlichen Ordner von Laravel speichern
- 16. E-Mails von einem öffentlichen Ordner abrufen C#
- 17. Ein Bild in den Öffentlichen Ordner von Google Drive hochladen
- 18. Rails Modul/Ordner Namenskonvention
- 19. Kann jeder über die URL auf den öffentlichen Ordner "rails" zugreifen?
- 20. Heroku nicht statisch/Öffentlichen Ordner mit Unicorn und Rails 2.3 App
- 21. gemset rails ordner leer
- 22. Benötigen bestimmte Ordner Ebene Zugriff in S3
- 23. Benötigen wir weiterhin den Ordner für Knotenanhänge?
- 24. Abrufen des absoluten Pfads zur Datei im öffentlichen Ordner in Rails
- 25. Wie man Öffentlichen Ordner von src in den Ordner dist kopieren
- 26. Welche CMS-Funktionen benötigen Sie in Rails?
- 27. Statisches Bild im Öffentlichen Ordner anzeigen (Schienen 4)
- 28. Laravel Route Präfix entspricht Verzeichnis der öffentlichen Ordner
- 29. Android Google Drive API-Upload in meinen öffentlichen Ordner
- 30. Zugriff auf Dateien in meinem Öffentlichen Ordner in node.js express
Können Sie bitte ein Beispiel für eine Verzeichnisstruktur angeben, die JavaScript von Drittanbietern enthält? Meinst du etw so: public/angular/angular.js, angular-messages.js etc.? (Nehmen wir an, wir verwenden angularjs gem nicht und enthalten .js-Dateien direkt). – Lev