我正在使用.NET,简单的问题是:
我如何让网络浏览器知道
<script type="text/javascript" src="/Scripts/myjsfile.js"/>
被gzipped?
我可以将.gz
附加到源代码吗?
This article非常酷,它展示了如何通过插入Response.Filter流对象来压缩动态html以返回gzip压缩内容。但是我的css / js不是动态的,所以我没有看到浪费cpu周期为每个请求压缩的重点。
那么我如何告诉网络浏览器它是压缩内容,还是已经知道?
答案 0 :(得分:0)
带标题的标记响应:
Content-Encoding: gzip
更新:我刚刚意识到我回答了你的字面问题 - 客户端将如何知道 - 但不是你需要在服务器上做什么来让它发送。不幸的是,我不使用IIS,所以我不能给你一个明智的答案。
如果没有人回答你,你可以自己做动态的事情,而且速度并不慢。基本上Apache正在做的事情是:
Accept-Encoding
标头是否包含gzip
。filename + ".gz"
个文件Content-Encoding: gzip
和相应的Content-Type
filename
,如果存在则发送404
。你也可以随时告诉它gzip文件;这在空间上更经济,因为你没有在磁盘上保留两个版本的文件,但速度较慢(因为你需要在每次请求时压缩)。
答案 1 :(得分:0)
#####################################################
# CONFIGURE media caching
#
Header unset ETag
FileETag None
<FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|js|css)$">
Header unset Last-Modified
Header set Expires "Fri, 21 Dec 2012 00:00:00 GMT"
Header set Cache-Control "public, no-transform"
</FilesMatch>
#
#####################################################
将“FilesMatch”更改为您想要的gzip。服务器会自动将未压缩的文件压缩为gzip,将其发送到浏览器,浏览器会将文件解压缩回原始格式。