最近,白龙又用drupal8.7.6开发了一个企业站,新闻栏目A有B、C、D、E等4个子栏目,A与其子栏目的内容来自同一个节点,子栏目通过分类实体来实现;新闻列表A默认调用其子栏目B的文章,即新闻列表A与其子栏目B的内容相同,而子栏目B有8篇文章。
打开第一篇文章进入内容页,点击“上一篇”或者“下一篇”文章切换时,发现了异常,“上一篇”与“下一篇”的文章标题竟然相同;接着,又打开第二篇文章,点击“上一篇”或者“下一篇”,此时,“上一篇”与“下一篇”的文章标题仍然相同,这是异常的,正常情况下,“上一篇”与“下一篇”文章标题应该不相同才对。怀着忐忑的心,又打开了第三篇文章,测试上下篇切换时文章标题是否相同,结果显示,上一篇文章是不同的,这是正常的输出形式。
测试发现,造成上述问题的原因有两个:
一、区块重复
检查了“数据从输入到输出”的整个过程,意外发现栏目A与其子栏目B是用两个视图区块输出了相同的内容,而栏目A与其子栏目B中的数据又均来自同一个节点,并且通过分类输出。这就导致了栏目A与其子栏目B分别调用了相同的内容各一次,换而言之,一篇文章出现了2次。
所以在内容页点击第一、第二篇文章的上下页切换功能的时候,就出现上下篇文章标题相同的情况。原因找到了,解决的方案水到渠成的就出来了。
即:栏目A与其子栏目B的展示,只需要对栏目B定义一个区域,制作一个区块进行输出;然后在父栏目A中复用栏目B中定义的区域与视图区块即可。
二、内容太少
通过上面的配置后,发现问题亦然存在。无意间又在B栏目原8篇文章的基础上多输入了6篇文章,发现BUG竟然消失了,即:点击第一、第二篇中的上下页切换文章时,文章标题没有出现重复了。
然后又测试了其他栏目,通过上传足够多的文章,确实解决了这个BUG。可能是drupal8系统约束导致的这个问题吧。
到这里,问题已经完美的解决了。白龙在用drupal开发网站的时候,发现有很多奇奇怪怪的问题,后续接着为大家分享。