gpt4 book ai didi

gzip - tools.gzip 似乎不压缩cherrypy 中的内容

转载 作者:行者123 更新时间:2023-12-05 01:05:15 32 4
gpt4 key购买 nike

我正在使用 Chrome 和 Firefox 下的 Yslow 工具查看我的开发站点,其中一项建议是我对适当的内容进行 gzip。作为起点,我刚刚在我的 [/] 配置中添加了“tools.gzip.on = True”。我知道配置文件和块被正确解析,因为我还在响应头中添加了禁用缓存的选项,因为我在开发站点时经常更改文件。我在回复中看到“Expires”和“Pragma: no-cache”标题。

出于某种原因,即使更改了配置文件(并重新启动了该过程,这并不是绝对必要的),Yslow 仍然报告我没有使用 gzip。我也一直在使用 wget 并且看不到 Content-Encoding header 。

任何人都可以建议我如何验证发生了什么?我想知道问题是忽略 gzip 设置还是 Yslow 只是弄错了事实。我以前从来没有遇到过 Yslow 的问题,所以我倾向于前者。

我要补充一点,Yslow 只报告我的外部 CSS 和 JavaScript 文件(由同一个cherrypy 进程提供)需要压缩,即使“wget -S”显示的 header 即使在主文件上也不显示 gzip 编码页面本身(这是动态内容)。

我试过在我的 [/css] 和 [/js] 块中添加“tools.gzip.on = True”,我也试过在所有相同的块中设置“tools.encode.on = True”,想也许必须启用编码才能让 gzip 工作。

提前致谢。

最佳答案

cherrypy.lib.gzip 的 3.2 文档字符串:

def gzip(compress_level=5, mime_types=['text/html', 'text/plain'], debug=False):
"""Try to gzip the response body if Content-Type in mime_types.

cherrypy.response.headers['Content-Type'] must be set to one of the
values in the mime_types arg before calling this function.

The provided list of mime-types must be of one of the following form:
* type/subtype
* type/*
* type/*+subtype

No compression is performed if any of the following hold:
* The client sends no Accept-Encoding request header
* No 'gzip' or 'x-gzip' is present in the Accept-Encoding header
* No 'gzip' or 'x-gzip' with a qvalue > 0 is present
* The 'identity' value is given with a qvalue > 0.

"""

我的钱在 MIME 类型上,因为你提到了 JS 和 CSS。你可以这样改变:
[/static]
tools.gzip.mime_types: ['text/html', 'text/plain', 'text/javascript', 'text/css']

在 CherryPy 3.2+ 中,您可以将其缩短为:
[/static]
tools.gzip.mime_types: ['text/*']

关于gzip - tools.gzip 似乎不压缩cherrypy 中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6310306/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com