2014-02-13 8 views
5
verdauen

Ich habe ein paar Manifest-Dateien mit verdauen auf dem Deployment-ServerRails 4 Vermögenswerte manifest.json letzten

manifest-bcba79cf9483d404e9951992bbe38e46.json 
manifest-7db402a1216c2425e0f881b6331ba27d.json 
... 

Wie Zahnräder, die von Manifesten wissen neu ist? Oder sollte es nur eine Manifest-Datei sein?

Grüße

+0

Ich denke, es auch Fingerabdruck für das und Fingerabdrücken enthält den Zeitstempel verwendet wird. so kann es herausfinden, welches ist das neueste –

Antwort

0

Ich denke, man nur eine Manifest-Datei haben sollte. Versuchen Sie, den gesamten Cache ungültig zu machen, indem Sie Ihre Asset-Version in Ihrer production.rb Datei zu erhöhen, wie so:

config.assets.version = "1.x" 
4

die manifest.json hat immer eine zufällige SecureRandom.hex(16) an seinen Namen. Bei einem Blick auf manifest können Sie sehen, dass Ritzel die erste verfügbare Datei nimmt.

Wenn Sie mehr manifest-*.json Dateien auf dem Server zu sehen, es könnte riskant bekommen, da Ketten nicht wirklich die neueste Datei auswählen und Sie können mit dem Laden veralten Vermögenswerte am Ende.

Führen Sie einfach die folgenden und Sie sind gut zu gehen:

bundle exec rake assets:clobber 
bundle exec rake assets:precompile 
+0

Ich sehe keinen Code in Ritzeln :: Asset, das bestimmt, welche von vielen Manifest- .json-Dateien werden von Schienen obwohl geladen. Wie es bestimmt, welches das jüngste ist. – noodl

+0

@noodl Ich habe die Erklärung Schritt für Schritt hinzugefügt. Es ist nicht so, dass Sprocket die neueste Datei aus einem Pool von Dateien holt. Es berechnet den Digest des gewünschten Assets. –

+0

Entschuldigung, wenn ich nicht klar bin, aber es gibt mehrere Manifest-Dateien. Mehrere JSON-Dateien, die jeweils Manifest-Informationen enthalten, werden falsch verwendet. Im Manifest ist der Auszug der aktuellen Datei für jeden Pfad im Abschnitt "assents: {}" enthalten. Manifest ist keine Datei, die mit einer JavaScript-Datei oder ähnlichem verknüpft ist. – noodl