Ich kann meine Website im Produktionsmodus nicht mit WebRick testen, da dadurch Cache-Fehler auftreten. Im Entwicklungs- und Testmodus funktioniert alles perfekt.
Ich habe diese Option in config / environments / production.rb gesetzt:
%Vor%Und dann lief ich:
%Vor%Jetzt starte ich den Server:
%Vor%Und wenn ich zu Ссылка gehe, bekomme ich "Es tut uns leid, aber etwas ist schiefgegangen." Im Terminal ist das was es ausgibt:
%Vor%Ich bin hier ins Stocken geraten. Ich habe keine Ahnung, was ich tun soll.
Das Problem liegt in der Asset-Pipeline, die im Produktionsmodus gut konfiguriert werden muss, da Dateien nicht automatisch vorkompiliert werden.
In meinem Fall habe ich eine JavaScript-Datei (mit javascript_include_tag
) eingefügt, die nur auf einer Seite vorhanden war. Daher wurde sie nicht in das Manifest application.js aufgenommen.
In diesem Fall wird die Datei beim Ausführen von assets:precompile
nicht vorkompiliert.
Um die fehlende Datei einzufügen, müssen wir config/environments/production.rb
bearbeiten und diese Zeile hinzufügen:
Sie werden feststellen, dass diese Zeile bereits existiert, aber sie ist kommentiert. Lesen Sie den Kommentar für weitere Erläuterungen. Weitere Informationen finden Sie im offiziellen Asset-Pipeline-Leitfaden .
Um eine Anwendung in der Produktion auszuführen, erhalten Sie keinen Cache: [GET /] miss Bitte überprüfen Sie Ihren {project} / public Ordner, ob der Ordner "Assets" vorhanden ist wenn nicht, dann kompilieren Sie Assets mit bundle exec Rake-Assets: Vorkompilierung
sobald dies erledigt ist:
Setzen Sie config.assets.compile auf true in production.rb
Starten Sie anschließend Ihre WebApp in der Produktionsumgebung neu.
Diese Annäherung funktionierte für mich, die Hoffnung wird für Sie arbeiten.
Wenn Sie Rails 3.2.0 verwenden, erhalten Sie [GET /] miss, aber Ihre Anwendung wird richtig funktionieren.
Tags und Links ruby-on-rails-3 ruby-on-rails ruby-on-rails-3.1 webrick