我想知道如何执行此操作?
#1 楼
更新您的Apache配置,以将以下指令作为核心配置的一部分:#
# associate .js with "text/javascript" type (if not present in mime.conf)
#
AddType text/javascript .js
#
# configure mod_expires
#
# URL: http://httpd.apache.org/docs/2.2/mod/mod_expires.html
#
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType image/x-icon "access plus 2692000 seconds"
ExpiresByType image/jpeg "access plus 2692000 seconds"
ExpiresByType image/png "access plus 2692000 seconds"
ExpiresByType image/gif "access plus 2692000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2692000 seconds"
ExpiresByType text/css "access plus 2692000 seconds"
ExpiresByType text/javascript "access plus 2692000 seconds"
ExpiresByType application/x-javascript "access plus 2692000 seconds"
ExpiresByType text/html "access plus 600 seconds"
ExpiresByType application/xhtml+xml "access plus 600 seconds"
</IfModule>
#
# configure mod_headers
#
# URL: http://httpd.apache.org/docs/2.2/mod/mod_headers.html
#
<IfModule mod_headers.c>
<FilesMatch "\.(ico|jpe?g|png|gif|swf|css|js)$">
Header set Cache-Control "max-age=2692000, public"
</FilesMatch>
<FilesMatch "\.(x?html?|php)$">
Header set Cache-Control "max-age=600, private, must-revalidate"
</FilesMatch>
Header unset ETag
Header unset Last-Modified
</IfModule>
#2 楼
您可以将其放在htaccess中:<FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|js|css)$">
ExpiresActive On
ExpiresDefault A2592000
</FilesMatch>
它将以具有这些扩展名(ico,flv,jpg等)的文件为目标,并将Expires标头设置为可访问时间(A)加30天(2592000秒)。如果可以访问,也可以在服务器级别添加它。
#3 楼
这取决于主机和服务器处理这些事情的方式。选项1)如果您控制服务器,请让apache在响应中添加到期标头
选项2)如果您不控制Web服务器,或者您托管图片/ js / css / etc,则可以从托管它们的脚本中设置这些标头
请记住,这些提示是可取的,但不是绝对的。它们不仅可以节省带宽,还可以加快网站访问速度。因此,如果您的网站访问量很少,则不必为此担心太多。
评论
我使用选项2。如何从脚本中设置这些标头。脚本是指php还是哪个?
– KoolKabin
2010年11月11日下午5:52
您可以检查stackoverflow.com/questions/2185449/…这是一个python示例,但是如果您熟悉编程,我想您会明白的。在php中,您将必须使用headers()。但是请记住,在这种情况下,必须通过脚本为所有“静态”文件提供服务,这会增加您的CPU配额。现在我想到了第三个选择。对这些文件使用CDN。
– Ilian Iliev
2010年11月11日在7:24
#4 楼
在Lightspeed Web Server中设置过期登录到管理控制台,然后>服务器->常规->过期设置->按类型过期
添加以下内容:
text/css=A604800, text/javascript=A604800, application/javascript=A604800, application/x-javascript=A604800, application/x-shockwave-flash=A604800, image/gif=A604800, image/jpg=A604800, image/jpeg=A604800, image/png=A604800, image/ico=A604800, image/icon=A604800
ExpiresActive On
或者,如果您没有管理控制台访问权限,请尝试以下.htaccess文件:
ExpiresByType image/png A604800
ExpiresByType image/gif A604800
ExpiresByType image/jpg A604800
ExpiresByType image/jpeg A604800
ExpiresByType text/javascript A604800
ExpiresByType application/x-javascript A604800
ExpiresByType text/css A604800
评论
将其放在.htaccess文件中时出现500内部服务器错误
– KoolKabin
2010年11月11日,下午5:51
您的Apache设置可能不支持上面列出的所有选项。我将尽快更新此答案,以帮助解决此问题。
–John Conde♦
2010年11月11日,12:50
我的Drupal包含javascript / css参考,例如:www.example.com/misc/jquery.js?v=1.4.4或www.example.com/sites/all/modules/nice_menus/css/nice_menus.css?mtu293,似乎不适用于此类文件。从今天开始更新吗?
– AgA
2013年9月28日11:59
@JohnConde为什么同时到期和标头?另外,例如在更新图像或CSS时,是否需要重命名文件?或对于CSS文件,版本控制有效:test.css?123?
–反对
2014年1月14日14:01