2017-03-17 80 views
-1

我使用nginx + puma。 我有一个特殊的文件夹,用户可以在其中下载图像,所以我对它们启用gzip。但是当我浏览器。在响应中没有Content-Encoding:gzip标头。 可能会失败在REG例如:gzip不能在图像上工作

location ^~ /media/gallery/.*/.+\.(jpg|jpeg|gif|png|svg|mp3|ogg|gz|swf)$ { 
    gzip on; 
    gzip_comp_level 3; 
    gzip_buffers 16 8k; 
    gzip_static on; 
    expires max; 
    access_log off; 
    add_header Cache-Control public; 
    add_header Last-Modified ""; 
    add_header ETag ""; 
    break; 
} 

PS文件夹的样子:

site.com/media/gallery/1/test_image.jpg

site.com/media/gallery/1/ other_image.png

site.com/media/gallery/4/other_folder_image.jpg

更新: image_from_dev_console

+0

的[正则表达式看起来不错(https://regex101.com/r/Z1Jt8h/1)的损失。 –

+0

我怀疑这个过程中的某些东西知道PNG已经被压缩了,所以gzip无论如何不会做任何有用的事情。无论如何,不​​是一个编程问题;投票结束堆栈溢出的主题。 – tripleee

+0

@tripleee我把截图只是为了显示标题。没有jpg和其他图像的gzip编码。 –

回答

1

有nginx指令gzip_types您可以将mimetypes传递给。默认为text/html的

http://nginx.org/en/docs/http/ngx_http_gzip_module.html

!我必须告诉用gzip动态压缩任何非文本文件会导致服务器和客户端的高开销(特别是CPU),从而节省带宽,从而节省带宽。

你所寻找的是像mozjpeg图像的压缩,有效地压缩JPEG文件没有质量