使用 nginx 提供默认镜像

使用 nginx 提供默认镜像

我在 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;
}

相关内容