Drupal: Nach wechsel des File System Path werden Benutzerbilder nicht mehr angezeigt

Nachdem man bei Drupal den "File system path" unter admin/settings/file-system geändert hat und die Methode auf "private" hat, werden alle Benutzerbilder (avatare) nicht mehr angezeigt, obwohl der neue Pfad noch stimmt.

Stattdessen wird nach dem /system/files/ noch der Webroot angehängt, z.B.: /system/files/var/www/my_site/public_html/files/pictures/picture-123.jpg.

Dies passiert daher, weil in der Datenbank in der Tabelle "users" im Feld "picture" immer der volle Webroot Pfad steht, z.B. eben: "/system/files/var/www/my_site/public_html/files/pictures/picture-123.jpg". Und dieser wird dann zur Laufzeit mit dem, der unter "File system path" angegeben ist ersetzt. Unterscheidet sich dieser Pfad jedoch, funktioniert das ersetzen nicht mehr und Drupal passt den Pfad in der users Tabelle nicht automatisch an, wenn man den File System Pfad ändert.

Deshalb muss man dies noch manuell machen.
Wenn man also nun den File System Pfad von: /var/www/my_site/public_html/ nach: /srv/web/my_site/public_html/ wechselt, kann man in der users Tabelle das folgende SQL statement ausführen:

UPDATE users SET picture = REPLACE(picture,"/var/www/","/srv/web/")

Somit müssten dann die Benutzerbilder wieder korrekt angezeigt werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert