Blogger站点在W3C验证器中出现“xmlns:b属性不被允许”错误的解决咨询
解决Blogger站点W3C验证时的“Attribute xmlns:b not allowed here”错误
我之前帮不少Blogger用户处理过这个问题,其实根源很清晰——你遇到的是Blogger模板自定义命名空间和W3C验证标准之间的冲突,下面给你拆解原因和解决方案:
为什么会出现这个错误?
你在<html>标签里加的xmlns:b、xmlns:data、xmlns:expr这些属性,是Blogger模板系统专属的命名空间,用来识别动态标签(比如<b:include>、<data:post.title>这类模板代码)。但W3C验证器使用的标准DTD(文档类型定义)里并没有收录这些自定义命名空间,所以会判定它们“不被允许”。
不过别担心,这些命名空间是Blogger模板正常工作必须的,但验证错误只是标准和平台特性的不兼容,不会影响你的站点在浏览器中的运行。如果一定要消除验证错误,可以按下面两种方案操作:
方案1:切换到HTML5 DOCTYPE(推荐)
现在主流站点都用HTML5,它不需要XHTML的命名空间声明,而且能彻底解决这个验证错误:
- 打开你的Blogger模板编辑器,找到开头的DOCTYPE声明,把它改成:
<!DOCTYPE html>
- 把
<html>标签里的所有xmlns属性全部删掉,修改后的<html>标签应该是这样:
<html class='v2' dir='ltr'>
这样修改后,W3C验证器就不会再报命名空间的错误,同时Blogger的模板动态标签依然能正常工作——因为这些标签是Blogger服务器在渲染页面时解析替换的,最终输出给用户的是标准HTML5代码。
方案2:保留XHTML格式(忽略或规避错误)
如果你坚持要用XHTML格式,那这些错误其实是“假阳性”:
- 你可以直接忽略这些验证错误,因为它们不影响站点功能,Blogger渲染后的页面依然符合XHTML标准。
- 或者,你可以验证渲染后的页面源代码:在浏览器中打开你的站点,右键查看页面源代码,复制所有代码到W3C验证器里,这时候验证的是Blogger处理后的标准HTML,不会出现命名空间错误。
内容的提问来源于stack exchange,提问作者Alex Smith
相关产品推荐
相关产品推荐

