[gelöst] Filefield/Imagefield + Caching -> Probleme!
am 13.02.2011 - 12:47 Uhr in
Hallo Freunde,
Filefield/Imagefield zusammen mit dem Caching macht mir große Sorgen. Ich nutze Memcache + APC + den Standard-Drupal-Cache(Normal).
Wenn bei mir ein User ein Foto neu in sein Profile hochlädt (Benutzerbild -> profile-bild-1.jpg) dann klappt alles tadellos. Von jedem Foto werden diverse Imagecache-Versionen erzeugt.
Einige User aktualisieren ihre Fotos aber ab und an (logisch) und ändern/tauschen ihr Benutzerbild aus - aber sobald das Profile geupdatet wurde, ändern sich die Pfade der Imagecache-Bilder. Selbst wenn der selbe Dateiname verwendet wird (profile-bild-1.jpg) dann macht Filefield daraus (da ja schon vorhanden) (profile-bild-1_0.jpg) und Imagecahe übernimmt dies für seine Bild-Versionen auch.
Jetzt stimmen aber die Pfade der Imagecache-Bilder nicht mehr da im Cache immer noch der alte Pfad verwendet wird und dieses Bild ja nicht mehr vorhanden ist. Somit habe ich überall Broken-Images - erst nach dem Flushen des Caches werden wieder die richtigen Pafde verwendet und alles korrekt angezeigt.
Das ist doch aber keine Lösung! Ich kann doch nicht den ganzen Tag darauf achten, wenn ein User seine Bilder updatet, dass ich danach den Cache flushe.
Filefield-Path hilft auch nicht weiter - ich hatte dort eingestellt, dass die Dateinamen immer die eindeutige File-ID dazu bekommen aber das nützt auch nichts da im Cache trotzdem die alten Pfade vorhanden sind.
Ich habe gelesen, dass Filefield die schon vorhandenen Datein nicht überschreibt sondern immer neue Dateinamne erstellt file_0.jpg , file_1.jpg , file_2.jpg etc. - das kann man leider nicht ändern.
Dieses Problem muss doch bei allen auftreten die Caching verwenden? Ich kann mein Projekt im Moment einfach nicht meinen Usern anbieten. Broken-Images ohne Ende.
Was tun?
Schöne Grüße
Matthias
- Anmelden oder Registrieren um Kommentare zu schreiben
Juchu - ich war eben extrem
am 13.02.2011 - 13:32 Uhr
Juchu - ich war eben extrem frustriert aber für das Problem gibt dafür natürlich ein passendes Module ;-)
Das ist http://drupal.org/project/upload_replace - dieses Module dreht den Vorgang einfach um - die alte Datei (+ Imagecache-Versionen) werden zu profile-bild-1_0.jpg umbenannt und die neue hochgeladene Datei (+Imagecache) nimmt den alten Originalnamen an (profile-bild-1.jpg) - somit stimmen alle Pfade im Cache und das neue Foto wird überall korrekt angezeigt - selbst wenn der Cache schon "asbach uralt" ist.
Hatte eben schon graue Haare bekommen ;-)
Schöne Grüße
Matthias
Drupal rockt!!!