Drupal9环境下如何消除冗余的标签?

  白龙网研究发现,在用drupal9开发网站相关功能的时候,会产生一些额外的冗余标签,截断程序本该正常运行的功能。这让很多drupal初学者特别头痛,有什么办法可以解决这个问题呢?
 
  事情不会无缘无故的发生,既然有果,则必有因,这是因果循环。冗余标签的产生,与你在drupal内的操作有着密切关系。例如,定义区域、开发区块、定制视图、添加字段等操作,在打印输出时,会自动使用相应的drupal模板,而不是使用你前端的静态页面。这个时候,就有可能多出来一些系统自带的冗余标签。既然明白了冗余标签产生的原因,解决问题就很容易了。
 
  通过右键审查元素,根据debug提示,分别找到包裹前端代码的drupal模板,对比前端代码,删除冗余标签即可。
 
  一、消除区域模板中的冗余标签
 
  在*.info.yml文件中定义区域,在自定义模板中调用区域变量,打印对应内容,一般会产生冗余代码。找到drupal通用的region模板,对比前端代码,删除多余标签即可。
 
  二、消除区块模板中的冗余标签
 
  自定义区块也好,系统区块也罢,在定义、调用过程中,也有可能产生多余的标签。这个时候,根据debug提示,找到drupal通用的block模板,对比前端代码,清除冗余标签即可。
 
  三、消除视图模板中的冗余标签
 
  同理,不管是系统视图,还是自定义的视图,在使用视图输出内容时,都会涉及到冗余标签的事。除了使用模板覆盖多余标签外,亦然是据debug提示,找到drupal通用的view模板,删除多余的标签。
 
  四、消除字段模板中的冗余标签
 
  在实体中定义的字段,通过view视图打印字段,这个过程会产生包裹在前端代码外的冗余标签。一是可以通过视图中的FORMAT、FIELDS设置菜单,取消包裹在前端代码外的冗余标签。如果这个方法消除冗余代码不够彻底,可以据debug提示,找到drupal通用的fields模板,修改并保留{{field.content}}字段内容循环输出后,删除其他所有代码,即可清除字段外所有的冗余代码。
 
  一般来说,我们修改通用模板的时候,会把这些通用模块复制一份到自定义的模板templates目录下来修改使用。如果目标前端代码实现的功能全网样式一致,则使用通用模板即可,可快速开发;反之,则需要把通用模板修改为唯一识别该功能的模板,如region--sidebar-first.html.twig、block--views-block--news-block-1-3.html.twig、views-view.html.twig、views-view-fields.html.twig等。