作者:亚艾元技术部
Drupal 8下面的boost模块,并不完善,我们改造了一下,刚好能够满足我们的需要。
不过在配置nginx的重写规则的时候,Drupal8网站需要单独的写一个规则,我开始的时候这样写nginx下面的规则:
if ($request_uri ~* "^/$"){ #set $frontboost "Y"; # if ( -f $document_root/sites/default/files/boost/node.html ) { rewrite ^.*$ /sites/default/files/boost/node.html break; # } }
重启nginx总是报错,后来将它改为了:
set $frontboost ""; if ($request_uri ~* "^/$"){ set $frontboost "Y"; } if ( -f $document_root/sites/default/files/boost/node.html ) { set $frontboost "${frontboost}E"; } if ($frontboost = YE){ rewrite ^.*$ /sites/default/files/boost/node.html break; }
Nginx配置文件里面if语句竟然不能嵌套。所以我只好设置了一个$frontboost变量,将两个if语句组合,从而实现首页的重新。
if ($request_uri ~* "^/$"){
表示当前是首页。
if ( -f $document_root/sites/default/files/boost/node.html ) {
表示当前首页的boost静态文件存在
两个条件都满足,我们rewrite 一下,使用静态文件响应。
最后面是默认的静态页面映射配置:
if ( -f $document_root/sites/default/files/boost$request_uri.html ) { add_header X-Boost-Cache "full"; rewrite ^.*$ /sites/default/files/boost$request_uri.html break; }
Drupal8下面,boost模块地址:
经过我们的改造,还是很好用的。