我的答案是这样的:http : //blog.kenweiner.com/2009/08/serving-gzipped-javascript-files-from.html
根据skyler的答案,您可以上传css和js的gzip和非gzip版本。小心命名并在Safari中进行测试。因为Safari无法处理.css.gz或.js.gz归档。
site.js和site.js.jgz和
site.css和site.gz.css (你需要设定content-encoding标题,正确的MIME类型,以获得这些服务的权利)
然后在您的页面中放入。
<script type="text/javascript">var sr_gzipEnabled = false;</script>
<script type="text/javascript" src="http://d2ft4b0ve1aur1.cloudfront.net/js-050/sr.gzipcheck.js.jgz"></script>
<noscript>
<link type="text/css" rel="stylesheet" href="http://d2ft4b0ve1aur1.cloudfront.net/css-050/sr-br-min.css">
</noscript>
<script type="text/javascript">
(function () {
var sr_css_file = 'http://d2ft4b0ve1aur1.cloudfront.net/css-050/sr-br-min.css';
if (sr_gzipEnabled) {
sr_css_file = 'http://d2ft4b0ve1aur1.cloudfront.net/css-050/sr-br-min.css.gz';
}
var head = document.getElementsByTagName("head")[0];
if (head) {
var scriptStyles = document.createElement("link");
scriptStyles.rel = "stylesheet";
scriptStyles.type = "text/css";
scriptStyles.href = sr_css_file;
head.appendChild(scriptStyles);
//alert('adding css to header:'+sr_css_file);
}
}());
</script>
gzipcheck.js.jgz只是sr_gzipEnabled = true; 为了测试,以确保浏览器可以处理gzip压缩的代码并提供备份(如果不能)。
然后假设您的所有js都在一个文件中并且可以放在页脚中,然后在页脚中执行类似的操作。
<div id="sr_js"></div>
<script type="text/javascript">
(function () {
var sr_js_file = 'http://d2ft4b0ve1aur1.cloudfront.net/js-050/sr-br-min.js';
if (sr_gzipEnabled) {
sr_js_file = 'http://d2ft4b0ve1aur1.cloudfront.net/js-050/sr-br-min.js.jgz';
}
var sr_script_tag = document.getElementById("sr_js");
if (sr_script_tag) {
var scriptStyles = document.createElement("script");
scriptStyles.type = "text/javascript";
scriptStyles.src = sr_js_file;
sr_script_tag.appendChild(scriptStyles);
//alert('adding js to footer:'+sr_js_file);
}
}());
</script>
更新: Amazon现在支持gzip压缩。公告,因此不再需要。 亚马逊公告