有时候遇到一个比较复杂的问题,我会选择暂时放一放。 

YSlow的检测结果,当时优化掉几个问题后,就暂时放手了。 

最近在网站优化上有了新的认识,应用一下: 

Add an Expires or a Cache-Control Header 

简单点说:就是缓存一下不常修改的文件,提升访问速度。 

再简单点说:就是在.htaccess文件中写入以下内容:

<IfModule mod_expires.c> 
	​ExpiresActive On 
	ExpiresDefault A600 
	ExpiresByType image/x-icon A2592000 
	ExpiresByType application/x-javascript A2592000 
	ExpiresByType text/css A604800 
	ExpiresByType image/gif A2592000 
	ExpiresByType image/png A2592000 
	ExpiresByType image/jpeg A2592000 
	ExpiresByType text/plain A86400 
	ExpiresByType application/x-shockwave-flash A2592000 
	ExpiresByType video/x-flv A2592000 
	ExpiresByType application/pdf A2592000 
	ExpiresByType text/html A600 
</IfModule>

text/css之类代表文件类型,A2592000表示在浏览器中的缓存时间,3600*24=86400, 86400*30=2592000秒=30天,86400*7=604800(秒)=7天。 

Gzip components 

Gzip压缩是减少文件体积增加用户体验的简单方法, 

同样,添加以下代码到.htaccess文件即可。 

AddOutputFilter DEFLATE html xml php js css 

配置ETag 

这段话我没看明白,总之结论是:如果你没有使用ETag提供的灵活的验证模式,那么干脆把所有的ETag都去掉会更好。 

------------------------------------------

  1. 关于网站一般不容易变化的都是一些图片,CSS,JS脚本这些可以缓存到本地,设置一个缓存时间,比如30天,这样访客打开你的网站就不会在从网站服务器直接下载这些数据了,而是直接从本地缓存读取这些数据,这样就大大提高了网站加载速度,减少了加载时间。
  2. 我的网站 使用的是Linux服务器,我可以直接在.htaccess上面进行设置缓存规则。不过设置之前要确保你的虚拟主机服务商要开启mod_expires这个模块,不然设置以后会出现服务器500错误的。
  3. 简单点说:就是缓存一下不常修改的文件,提升访问速度。 再简单点说:就是在.htaccess文件中写入以下内容:
  4. <IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault A600
    ExpiresByType image/x-icon A2592000
    ExpiresByType application/x-javascript A2592000
    ExpiresByType text/css A604800
    ExpiresByType image/gif A2592000
    ExpiresByType image/png A2592000
    ExpiresByType image/jpeg A2592000
    ExpiresByType text/plain A86400
    ExpiresByType application/x-shockwave-flash A2592000
    ExpiresByType video/x-flv A2592000
    ExpiresByType application/pdf A2592000
    ExpiresByType text/html A600
    </IfModule>

注意事项

  • text/css之类代表文件类型,A2592000表示在浏览器中的缓存时间,2592000秒=30天。

 

Apache设置文件缓存时间

Apache要设置文件缓存时间,要依靠一个叫mod_expires的模块,但是,我们的机器上,原本是没有安装这个模块的,幸运的是,apache安装这个模块很简单, 

首先找到源代码

比如我们的是2.2.22的版本

cd httpd_2.2.22/modules/metadata

sudo /usr/local/apache2/bin/apxs -c -i -a mod_expires.c

这样就完成了mod_expores模块的安装,下面需要修改一下配置文件

sudo vim httpd.conf

在里面加入如下语句

#启用expires_module模块

LoadModule expires_module modules/mod_expires.so

 <ifModule mod_expires.c>

# 启用有效期控制

ExpiresActive On

#现在只控制swf文件的缓存期为3天

ExpiresByType application/x-shockwave-flash "access plus 3 days"

</ifModule>

然后重启apache

cd ../bin 

sudo ./apachectl restart

这样就完成了安装

mod_expirse这个模块,可以配置如下参数:

ExpiresActive on|off

这个选项表示是否其用有效期控制

ExpiresDefault <code><seconds>

这用于设置默认的时间

ExpiresByType type/encoding <code><seconds>

用于对某一种类型的文件进行控制

有以下几种写法(都表示有效期为1个月):

ExpiresDefault "access plus 1 month" 

ExpiresDefault M2592000