我在 nginx 中有以下配置:
location /static/ {
root /srv/kose/;
expires 2w;
access_log off;
}
location / {
proxy_pass http://127.0.0.1:8089;
}
如果在 /static/ 中找不到文件,我想提供默认图像,并且不是proxy_pass 到 8089。目前,它在根目录中寻找静态文件,如果找不到,它会尝试代理。
我尝试了以下方法,但不起作用。我该如何告诉 nginx 提供默认图像?我也试过了,但没有try_files
成功。
location /static/ {
root /srv/kose/;
expires 2w;
access_log off;
error_page 404 /srv/static/defaultimage.jpg;
}
location / {
proxy_pass http://127.0.0.1:8089;
}
答案1
以下工作:
location /static/ {
root /srv/kose/;
expires 2w;
access_log off;
try_files $uri /static/img/yazar/authornoimage.jpg;
}
请注意,我必须写入 try_files 的默认图像的 URL,而不是文件位置。
答案2
location /static/ {
root /srv/kose;
expires 2w;
access_log off;
error_page =200 /defaultimage.jpg;
}
location = /defaultimage.jpg {
internal;
root /srv/static;
expires 2w;
access_log off;
}
或者
location /static/ {
root /srv;
expires 2w;
access_log off;
try_files /kose$uri /static/defaultimage.jpg =404;
}