Für meinen NGINX-Server habe ich einen virtuellen Server eingerichtet, der nur statische Inhalte austeilt. Im Moment versuche ich, es so einzurichten, dass Bilder ein Ablaufdatum haben. Wenn ich jedoch eine Standortanweisung dafür erstelle, ergibt alles nur einen 404.
Meine aktuelle Konfiguration sieht folgendermaßen aus:
/srv/www/static.conf
server {
listen 80;
server_name static.*.*;
location / {
root /srv/www/static;
deny all;
}
location /images {
expires 1y;
log_not_found off;
root /srv/www/static/images;
}
}
Beachten Sie, dass diese Datei aus /etc/nginx/nginx.conf in einer http-Direktive enthalten ist
Ich versuche , das Bild zugreifen, um, sagen wir mal ... static.example.com/images/screenshots/something.png
. Sicher genug, das Bild existiert auch bei /srv/www/static/images/screenshots/something.png
. Das Aufrufen dieser Adresse funktioniert jedoch nicht und sagt mir einfach, dass 404 nicht gefunden wurde .
Wenn ich jedoch entferne location /images
und location /
zu folgendem wechsle ...
location / {
root /srv/www/static;
}
Es klappt! Was mache ich hier falsch?
quelle
root
Insidelocation
eine schlechte Praxis ist, warum spenden sie es dann selbst in docs / http / ngx_http_core_module.html # alias ? (Sehen Sie, wo es heißt " es ist besser, stattdessen die Root-Direktive zu verwenden ") KORREKTUR : Okay, es scheint, dass das, was falsch ist, darin besteht, die primäre Wurzel an einem Ort zu definieren, nicht an irgendeiner Wurzel