Javascript 如何对网站上的.css和.js文件使用gzip压缩?
为了让gzip压缩在我的共享托管服务器上的网站上工作,我已经辛苦了好几天了。我已经取得了一定程度的成功,但遗憾的是,尽管我尽了最大努力,css和.js文件还是被遗漏了。因为我使用的是共享主机,所以我无法访问apache配置文件,所以我不得不使用.htaccess文件来实现这一点 我目前正在使用的站点是运行Wordpress的,下面是我正在使用的.haccess文件:Javascript 如何对网站上的.css和.js文件使用gzip压缩?,javascript,css,apache,compression,gzip,Javascript,Css,Apache,Compression,Gzip,为了让gzip压缩在我的共享托管服务器上的网站上工作,我已经辛苦了好几天了。我已经取得了一定程度的成功,但遗憾的是,尽管我尽了最大努力,css和.js文件还是被遗漏了。因为我使用的是共享主机,所以我无法访问apache配置文件,所以我不得不使用.htaccess文件来实现这一点 我目前正在使用的站点是运行Wordpress的,下面是我正在使用的.haccess文件: # compress text, html, javascript, css, xml: AddOutputFilterByTyp
# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/js
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 week"
</IfModule>
## EXPIRES CACHING ##
<IfModule mod_headers.c>
<FilesMatch "\.(js|css|xml|gz)$">
Header append Vary Accept-Encoding
</FilesMatch>
</IfModule>
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
压缩文本、html、javascript、css、xml:
AddOutputFilterByType泄气文本/普通
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE应用程序/xml
AddOutputFilterByType DEFLATE应用程序/xhtml+xml
AddOutputFilterByType DEFLATE应用程序/rss+xml
AddOutputFilterByType放气应用程序/js
AddOutputFilterByType DEFLATE应用程序/javascript
AddOutputFilterByType DEFLATE应用程序/x-javascript
##过期缓存##
过期于
过期按类型映像/jpg“访问1年”
过期按类型图像/jpeg“访问1年”
ExpiresByType image/gif“访问1年”
过期按类型图像/png“访问1年”
ExpiresByType文本/css“访问1个月”
过期按类型应用程序/pdf“访问1个月”
ExpiresByType文本/x-javascript“访问1个月”
过期按类型应用程序/x-shockwave-flash“访问1个月”
过期按类型图像/x图标“访问1年”
ExpiresDefault“访问1周”
##过期缓存##
头附加变量接受编码
mod_gzip_on Yes
是的
mod_gzip_item_include file\(html?| txt | css | js | php | pl)$
mod_gzip_item_包含处理程序^cgi脚本$
mod_gzip_项目包括mime^text/*
mod_gzip_item_包括mime^application/x-javascript*
mod_gzip_项_排除mime^image/*
mod_gzip_item_排除rspheader^内容编码:.*gzip*
当我使用Firebug v1.8.3和Google PageSpeed v1.12检查站点时,发现以下文件未被压缩:
/wp包括/js/jquery/jquery.js?ver=1.6.1
/wp content/themes/peak heat/script/global.js
/wp content/plugins/contact-form-7/jquery.form.js?ver=2.52
/wp content/themes/peak heat/style.css
/wp content/plugins/contact-form-7/scripts.js?ver=3.0
/wp content/plugins/contact-form-7/styles.css?ver=3.0
/wp内容/插件/推荐小部件/推荐小部件.css
检查网站URL本身和网站,它确认压缩已启用,但当我检查上述.css和.js文件时,它表示它们未被压缩
压缩我的站点时,如何包含所有.css和.js文件?
AddOutputFilterByType DEFLATE text/css
将压缩设置为DEFLATE
,而不是gzip
,因此使用filematch
并将内容编码标题设置为x-DEFLATE
:
<filesMatch "\.(js|css)$">
Header set Content-Encoding x-deflate
# Header set Content-Encoding compress
# Header set Content-Encoding x-gzip
</filesMatch>
标题集内容编码x-deflate
#标题集内容编码压缩
#标题集内容编码x-gzip
如果失败,请取消注释compress
行,并注释x-deflate
行。gzip不是标准Apache安装的一部分,因此如果deflate不够,请安装。作为最后手段,.我认为您缺少了AddOutputFilterByType DEFLATE text/javascript
。添加该选项为我解决了问题。您是否有其他与这些文件匹配的.htaccess
文件/规则?您的html文件是否正在压缩?@Rob W-我刚刚检查了所有子文件夹。站点上没有其他.htaccess文件。@mahnsc-是,HTML文件正在被压缩。您是否可以/已经将相同的.htaccess文件作为测试添加到/wp content/themes/peak heat/
目录中,以查看styles.css是否会被压缩?当我在magento中使用此代码时,它的css和js停止工作这对我有效:)一个问题,有没有办法压缩外部文件?谷歌称“cdn1.livechat.com/mife.js”可以节省14kb,但它是一个外部文件。知道如何加载压缩后的文件吗?@user2997826如果需要压缩外部文件,有些文件会涉及到这一点,但这是特定于CDN的。@Paul Sweatte:当我在.htaccess文件中使用此代码时,css&js不会加载到DOM中。你有没有其他方法来压缩js&css文件?@user1640432在答案的末尾有一个链接,有另一种方法。