平常喜欢用drupal开发网站的朋友们都知道,drupal环境下内容页是由page和node两个模板共同控制的。
也可以理解为:不同内容页中相同的功能模块如导航菜单nav、轮播图片banner、网站底部footer等写进page模块,不同内容页中不同的功能模块如文章标题、正文、发布日期、作者、来源、阅读量等写进node模块。
然而,白龙网在用drupal开发网站时,就经常遇到这样的问题:当内容页拆分成page、node模板后,没有清理缓存就退出了后台,然后再重新登陆时,发现已经无法正常登陆了。这是什么原因呢?如何解决?
经多次研究、测试,发现出现上述无法登陆问题的原因可能是拆分后的page模板覆写了登陆模板的部分功能。所以,这个时候,想办法通过数据库清理缓存即可解决该问题。
登陆本地或者服务器端数据库,在SQL命令行中运行如下清理数据库缓存的命令:
use my_drupal8;
TRUNCATE `cachetags`;
TRUNCATE `cache_bootstrap`;
TRUNCATE `cache_config`;
TRUNCATE `cache_container`;
TRUNCATE `cache_data`;
TRUNCATE `cache_default`;
TRUNCATE `cache_discovery`;
TRUNCATE `cache_dynamic_page_cache`;
TRUNCATE `cache_entity`;
TRUNCATE `cache_menu`;
TRUNCATE `cache_page`;
TRUNCATE `cache_render`;
TRUNCATE `cache_toolbar`;
运行成功,再次登陆网站后台,即可成功登陆。
当然,也可以参考《重建缓存:通过数据库清空drupal所有缓存》构建一个批处理文件放到根目录,然后通过命令窗口快速重建数据库缓存。
需要说明的是:use当前数据库名称,use后面一定是当前数据库的名称,才能清理数据库缓存成功。