404 für nicht vorhandene Bilder ausgeben

Ich nutze Local by Flywheel als lokale WordPress-Entwicklungsumgebung. Probleme habe ich immer dann, wenn ich mir ein Backup einer Kundenseite herunterlade und es lokal in Local einspiele. Meist lade ich nämlich nicht alle Bilder (wp-content/uploads/) herunter. Nun leitet NGINX alle Anfragen an die index.php weiter. Das wiederum erzeugt dann eine hohe Prozessorauslastung. Wie man das vermeiden kann, steht hier.

Das Problem

Local by Flywheel ist so eingestellt, dass es alle Anfragen an die index.php weiterleitet. Das geschieht natürlich auch mit allen Bild-URLs die nicht gefunden werden oder die nicht mehr existieren. Das wiederum erzeugt eine hohe Prozessorauslastung genau dann, wenn man den wp-content/uploads-Ordner überhaupt nicht synchronisiert hat. Als Entwickler klickt man ja doch öfter mal auf den Reload-Button im Browser. Dann nervt es, wenn der Rechner langsamer wird, weil die Auslastung steigt.

Die Lösung …

ist ganz einfach: für die nicht vorhandenen Dateien wird ein 404-Fehler zurückgegeben. Das geht super schnell und am Ende ist es Prozessorschonender. Und so geht’s:

In der Datei conf/nginx/site.conf der Local-Konfiguration folgendes ergänzen:


server {
    ...

    location ~ \.(ico|css|js|gif|jpe?g|png)$ {
    	try_files $uri $uri/ =404;
	}

    ...
}