Frage

Ich benutze Rails 3.1 und habe unter Vermögenswerten solche Dateien wie folgt:

assets
  javascripts
    admin
        admin.js
        a1.js
    client
       client.js
        c1.js

admin.js sieht so aus

//
//= require jquery
//= require jquery_ujs
//= require a1

Client.js sieht so aus

//
//= require jquery
//= require c1

Alles funktioniert im Entwicklungsmodus gut. Wenn ich Vermögenswerte durchbessere: Precompile dann sehe ich keine JavaScript -Dateien in der Öffentlichkeit/Vermögenswerte. Ich sehe alle Stylesheets in der Öffentlichkeit/Vermögenswerte.

Ich denke, dies hat damit zu tun, dass sich in diesem Fall manifestierte Dateien (admin.js und client.js) im Unterverzeichnis befinden.

Stimmt das also, dass Rake Assets: Precompile nicht in Unterverzeichnisse untersucht?

Alle Vorschläge, wie man dies behebt. Ich bevorzuge die Dateien so, wie ich es angelegt habe, weil ich eine Reihe von JavaScript -Dateien habe.

War es hilfreich?

Lösung

In der Schienenkonfiguration befindet sich ein Präkompilen -Array, mit dem die Dateien auf Präkompilien festgelegt sind. application.js und application.css in irgendein Verzeichnis.

Sie müssen Ihre Dateien zum Precompile -Array hinzufügen:

config.assets.precompile += ['admin/admin.js', 'client/client.js']

Und sie sollten über:

javascript_include_tag "admin/admin.js"

und

javascript_include_tag "client/client.js"

Andere Tipps

Bei Rails 3.2.6 können Sie beim Verwalten von JavaScript -Assets in Subdirs das Manifest für jeden Subdir 'index.js' benennen (im Gegensatz zu OPs "admin.js" und "client.js") und dann in Konfigurationen/Umgebungen /Production.rb sagen:

config.assets.precompile += ['admin.js', 'client.js']

Die Magie hinter den Kulissen schaut im Administrator -Subdir und kompiliert nach den Spezifikationen in Index.js, die an admin.js ausgegeben werden. Ebenso für den Kunden.

Das Vermögen ist dann zugänglich über:

javascript_include_tag 'admin'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top