【问题标题】:Facebook Debugger Error: Meta Tags In BodyFacebook 调试器错误:正文中的元标记
【发布时间】:2015-07-04 18:06:08
【问题描述】:

当我在 Facebook 调试器中检查我的网站时,我收到此错误:

必须修复的错误

正文中的元标记您的页面在正文中而不是在头部有元标记。 >这可能是因为您的 HTML 格式不正确,它们在解析树中的位置较低。 请修复此问题以使标签可用。

我相信这个错误也会导致所有其他标签失效。

我已经尝试了好几个小时来定位正文中的元标记,并查看了源代码,但我在正文中找不到任何标记。我已经使用 Google 的结构化数据测试工具对其进行了测试,但它没有显示任何错误。它显示了通过 json、itemprop 和 property 制作的同一组织的 3 个相同版本(这很糟糕吗?)。

我查看了有关它的其他 stackoverflow 问题,他们似乎通过让其他人查看他们的主页资源来获得帮助。

我知道我的元标记不是很整洁或优化,但现在我真的需要修复这个错误。我感谢任何可以解决它的敏锐观察!

发布 cmets:

识别和修复 HTML 错误的好工具:http://validator.w3.org/ 另一个具有实时响应的 HTML 改进工具:http://www.dirtymarkup.com/

【问题讨论】:

  • 您的主页有几个 HTML 错误(例如,您有两个 html 元素),最好提前修复。您可以通过简单的 Ctrl+f 搜索轻松找到 body 中的 meta 元素(允许一些,一些不允许)。无论如何,要使这个问题成为主题,您必须在问题中包含给出此错误的最小 (!) 代码。
  • @unor 两个 html 元素是指 和 吗?你知道我怎么能把它们结合起来吗?我已经使用了搜索功能,但是在 之外没有找到任何元数据。至于代码,我可以发布源代码,但它相当长,所以我不确定我是否应该。我已经提供了有问题的网站的链接。
  • (1) 您不应该提供完整的代码,而应该提供最少的代码(这意味着:理想情况下,只有给出错误的内容,没有其他内容;所以删除与所讨论的错误无关的任何内容)。链接的问题是它们可能会出现 404,或者您正在更改标记——那么这个问题对其他人来说不再有用了。 (2) 只需搜索开始标签<html -- 将注释放在一边,您有两个html 元素:<html lang="en" class="no-js"><html itemscope itemtype="http://schema.org/Organization" />
  • @CBroe 是的,有一个 div 和一些拼写错误导致头部出现错误。感谢您分享出色的验证器工具!我不知道我的网站有这么多问题,但现在已经删除了关键问题。感谢您的帮助。

标签: html facebook meta-tags meta


【解决方案1】:

<!DOCTYPE html> 必须放在<html> 之前,第 68 行无用 cmets,第 103 行也是错误的。

编辑

为了美化你的代码,你可以使用http://www.dirtymarkup.com/

【讨论】:

  • 您好,ZwartyZ,我现在将 添加到顶部,但仍然出现错误。至于第 68 行和第 103 行,在我假设的源代码中,我同意 是没用的,但不幸的是,我还没有把源代码整理得井井有条。对于第 103 行,我认为 schema.org/Organization" /> 很重要,因为它是使用 Google 的 sn-p 工具生成的。
  • 在链接 103 上的 是错误的,因为每个页面不能超过一个 html 标签,我建议尝试在页面开头的 html 中插入 itemscope 和 itemtype="..."。
  • 谢谢,我没注意到!我现在在开始时将它添加到 html 中。共享和几个元标记现在似乎可以工作,但我仍然在正文错误中收到元标记。
  • 比我预期的错误要多得多,首先你必须删除我之前发现的无用评论,其次,第 2699 行 div 和他的内容必须在 body 标签中,而不是在它之后。我正在寻找其他错误。反正我没有在你的 body 元素中找到任何元标记。
  • 元字符集标签必须是打开头部元素后的第一个标签,标题标签应该跟随它。
【解决方案2】:

你有很多语法问题。您的文档的头部如下所示:

<html lang="en" class="no-js"> <!--<![endif]-->
<!doctype html>
<!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]><html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if IE 9 ]><html class="ie9 no-js"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!-->

doctype 应该在&lt;html&gt; 标签之前,而不是之后。另外,你还有一堆无效元素,比如&lt;html itemscope itemtype="http://schema.org/Organization" /&gt;

查看W3 Validator's take on your page。您需要解决很多很多问题。

【讨论】:

  • 您好,Ed,感谢您的提示。我现在已经解决了这两个问题,还有其他问题,但是你说的对我有很多网站问题是对的。我正在尝试使用验证器解决所有问题。
  • @ErlendK.H.乐意效劳。如果您觉得它有帮助,请接受此答案。 :)
  • 我愿意,但 ZwartyZ 帮了我更多的细节,所以我给了他接受的答案。但是感谢您的贡献!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-17
  • 2016-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-06
相关资源
最近更新 更多