Rails 3.1 Assets hat keinen Fingerabdruck in der Produktion

9

Ich habe gerade angefangen, mich an Rails 3.1 anzupassen, habe angefangen, coffeescript und sass zu schreiben und alles funktioniert gut in der Entwicklung. Wenn ich den Server in Produktion betreibe, bekomme ich nur:

%Vor%

Im Quellcode der Seite wird kein Hashcode generiert und beide Assets haben Routing-Fehler:

%Vor%

Was ist die Ursache dafür? Habe ich vergessen, etwas zu tun?

Einstellungen in Umgebungen / production.rb:

%Vor%

Vielen Dank.

Fügen Sie weitere Informationen hinzu:

in layouts / application.html.erb verwende ich Folgendes, um die Assets aufzunehmen:

%Vor%

Und ich habe versucht, bundle exec rake assets:precompile , die ohne Ausgabe nichts läuft und dann rails s -e production laufen, das Problem besteht weiter.

Und ich habe auch versucht, config.assets.compile = true und dann rails s -e production zu setzen, das Problem besteht immer noch.

Bitte helfen Sie.

Weitere Informationen. Ich habe gesehen, dass die kompilierten js und css im public / assets-Ordner generiert werden, aber in der Produktionsumgebung sind die Dateien ohne den Hash-Code enthalten.

Hilfe.

Lösung: Ich habe mein Projekt erneut überprüft und festgestellt, dass die Ursache darin liegt, dass ich application.rb für die Unterstützung von mongodb bearbeitet habe. Ich habe versehentlich kommentiert

%Vor%

Kommentar auskommen, dann ist alles in Ordnung.

Lass das für andere, um meinen Anfängerfehler zu erinnern.

Vielen Dank Richard. Ihre Antwort ist nicht endgültig, aber es hilft viel, verdient wirklich eine Abstimmung.

    
larryzhao 04.10.2011, 13:05
quelle

1 Antwort

3

Überprüfen Sie, ob die Pipeline in application.rb aktiviert ist:

config.assets.enabled = true

Verwenden Sie die richtigen Hilfsmethoden zum Schreiben der Tags? Die Hilfsmethoden sollten nicht die / Stylesheets und / Javascript im Pfad haben. So (in erb):

%Vor%

Sie müssen außerdem die Vorkompilierungs-Task als Teil der Bereitstellungsprozesse ausführen, um die Dateien zu erstellen, da Sie compile auf false festgelegt haben.

Der Leitfaden für die Anlagenpipeline zeigt, wie dies mit capistrano eingerichtet wird.

    
Richard Hulse 04.10.2011, 17:11
quelle