Ich teste meine Rails 4 App in der Produktionsumgebung auf meinem localhost: 3000 mit dem eingebauten Webrick Server. Wenn ich RAILS_ENV=production bundle exec rake assets:precompile
ausführen, werden die Assets in der Öffentlichkeit neu erstellt und das Manifest wird neu erstellt, aber die Seiten werden weiterhin mit den vorherigen Asset-Namen geliefert.Wie kann ich den Rails-Server dazu bringen, vorkompilierte Assets zu aktualisieren?
Beim Neustart des Rails-Servers werden die neuen Elemente angezeigt. Gibt es einen weniger extremen Weg, dies zu erreichen, und wie wird sich dies verhalten, wenn ich dies auf meinen Produktionsserver portiere, auf dem Phusion Passenger läuft? Ich möchte Apache wirklich nicht neu starten, um meine Assets in Gang zu bringen.
Ist Fingerabdruck für kompilierte Assets aktiviert? –
Ja, die kompilierten Assets sind Fingerabdrücke. Die Konfiguration ist Standard Rails 4 mit Ausnahme von 'config.serve_static_assets = true', das benötigt wird, um Webrick dazu zu bringen, Assets von'/public' bereitzustellen, 'config.assets.digest = true' ist gesetzt. Die Assets haben Namen wie 'application-01d7312dee865ebe9d525b15f2fbe7f0.css', dies ist der Wert, der in der Seitenkopfzeile steht. Das Problem ist, dass die alte Version immer noch verwendet wird, nachdem eine neue Version erstellt wurde. –
Ältere Version bedeutet, haben Sie den Inhalt geändert? Wenn Sie den Inhalt von Assets nicht geändert haben, ist die vorkompilierte Version dieselbe wie die vorherige und wenn Sie sie ein wenig ändern, ändert sich der Fingerabdruck und die App wird nur nach dem neuen fragen, da Sie 'config 'eingestellt haben. assets.digest = true'. –