Ich habe eine RoR-Anwendung (Ruby v1.8.7; Rails v2.3.5), die eine Seite in der Entwicklungsumgebung zwischenspeichert. Dies wäre kein so großes Problem, aber die a
Elemente der zwischengespeicherten Seite sind falsch.
Ich habe keine Änderungen an der Datei development.rb vorgenommen und den Controllern wissentlich keine Caching-Befehle hinzugefügt.
Ich habe versucht, das Cookie und die Seiten-Caches des Browsers (Firefox 3.5 unter OSX) für diese Site (localhost) zu löschen. Ich habe auch Mongrel neu gestartet. Nichts scheint zu helfen.
Was vermisse ich?
quelle
rake tmp:cache:clear
könnte das sein, wonach Sie suchen.quelle
RAILS_ENV=staging bundle exec rake tmp:cache:clear
sonst wird es wohl nicht funktionierenIch konnte dieses Problem beheben, indem ich meinen Assets-Cache bereinigte:
$ rake assets:clean
quelle
Suchen Sie in / public nach einer statischen Version Ihrer Seite und löschen Sie sie, falls vorhanden. Wenn Rails 3.x Seiten zwischenspeichert, bleibt eine statische Version in Ihrem öffentlichen Ordner und wird diese geladen, wenn Benutzer Ihre Site aufrufen. Dies bleibt auch nach dem Löschen des Caches bestehen.
quelle
/tmp/cache/
Verzeichnis.Wenn Sie Fragment-Caching durchführen , können Sie den Cache manuell unterbrechen, indem Sie Ihren Cache-Schlüssel wie folgt aktualisieren:
Version 1
<% cache ['cool_name_for_cache_key', 'v1'] do %>
Version 2
<% cache ['cool_name_for_cache_key', 'v2'] do %>
Oder Sie können den Cache basierend auf dem Status eines nicht statischen Objekts, z. B. eines ActiveRecord-Objekts, automatisch zurücksetzen lassen:
<% cache @user_object do %>
Mit dieser ^ Methode wird der Cache jedes Mal automatisch zurückgesetzt, wenn das Benutzerobjekt aktualisiert wird.
quelle
updated_at
geändert wird, stimmt das AR-Objekt nicht mehr mit dem Cache-Schlüssel überein, wodurch das Fragment erneut zwischengespeichert wird.Esoterischere Wege:
Rails.cache.delete_matched("*")
Für Redis:
Redis.new.keys.each{ |key| Rails.cache.delete(key) }
quelle