任何试图最大限度地提高drupal网站SEO评分的人都会看到增加静态资源缓存的建议:图像和字体等资源至少需要1年,CSS和Javascript文件等资源至少要1个月。如链接页面中所述,可以在整个站点范围内设置此缓存的更新周期,但如果您想为内容设置比静态资源更短的缓存更新周期,我们可以毫不费力地实现这一点。
为静态资源(针对Apache Web服务器上托管的站点)设置缓存生存期的最简单方法是修改drupal的默认.htaccess文件。
如果你正在托管自己的网络字体,你会想为它们定义一种类型。在.htaccess的顶部附近,添加类型声明,为woff2添加一个类型声明,woff2是自托管字体时的首选格式。
# Add type for woff2 fonts.
AddType application/font-woff2 woff2
接下来,我们需要实际设置资源的缓存更新时间。再往下,在<IfModule mod_expires.c>块中,添加将设置更长缓存寿命的行。
# Add longer caching for static files.
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType application/font-woff2 "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
显然,如果在Drupal .htaccess您添加了更多的字体格式类型声明,那么您也需要为这些格式设置更长的生存期。
此时,站点上的所有资源都将提供更新的缓存头,您可以重新测试站点的性能了。
1、正在进行修补
所有这些都很好,除了下次使用composer时(假如您正在使用composer),用默认的文件替换你的自定义.htaccess文件。如果你正在使用git,你可以简单地签出修改后的版本来带回你的更新,尽管你应该先做git diff,以确保没有其他你错过的更新。
所有这些都很好,但您可能会发现,在使用composer管理依赖关系的每个环境中,您都必须执行同样的git checkout舞蹈。幸运的是,有一个更好的方法:编写一个补丁,这样你的更改就总是被添加到默认的.htaccess中。有几个步骤可以实现这一点。
首先,我们要确保安装了一个软件包来帮助我们更改scaffold文件。在您的终端中,添加项目:
composer require Drupal/core-composer-scaffold
"scripts": {
"post-drupal-scaffold-cmd": [
"patch -p1 < patches/htaccess-cache.patch"
]
}
最后,我们需要实际将更改写入这个补丁文件。如果您之前提交了默认的.htaccess文件,但还没有提交更改后的文件,那么这一步非常简单。
以上假设.htaccess更改是自上次提交以来唯一未记录的更改。如果您有其他更改,可以在diff命令之后添加.htaccess文件的路径。
2、效果
以上步骤会让你的网站页面在一瞬间加载?遗憾的是,事情并没有那么简单,结果也没有那么神奇。事实上,大多数游客不会在一次访问中真正注意到差异。然而,作为优化网站性能和SEO的整体努力的一部分,以上是几个简单的步骤来解决drupal网站所有者在性能测试期间经常看到的建议。总的来说,它们是drupal网站优化的一部分。