由浏览器解释的HTML miss:Header-Content出现在Body中 - 为什么?

时间:2014-05-15 08:51:14

标签: php html http-headers template-engine ob-start

有我的来源:

Source by Firefox

正如您所看到的,源代码是正确的,但Firefox报告错误。

现在看看Firefox的控制台:

Firefox console

有一个错过解释:您可以在正文中找到的标题标签(css,脚本)之间的原始内容。

相同问题Chrome控制台:

Chrome console

在这里你也可以在开始的body-tag之后看到一些空格 - 似乎存在问题。

我构建了自己的简单模板引擎,如下所示:

    ob_start();     
    include $this->templateLocation; // includes the template
    $content = ob_get_clean();
    template::$pageContent = $content; // saves template for echoing later

我认为这个错误的原因是模板引擎的代码片段,因为可能之前输出了什么?我真的很绝望...... :(

编辑:

查看整个代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="de-DE">
<head profile="http://gmpg.org/xfn/11">

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<title>Seitentitel</title>

<!-- <link rel="icon" href="http://localhost/dating/wp-content/themes/dating/images/favicon.ico" /> -->
    <link rel="stylesheet" href="http://localhost/dating/wp-content/themes/dating/style.css" type="text/css" media="all" /><link rel="stylesheet" href="http://localhost/dating/wp-content/themes/dating/css/chooseCity.css" type="text/css" media="all" /> <script type="text/javascript" src="http://localhost/dating/wp-content/themes/dating/js/jquery-1.11.0.min.js"></script><script type="text/javascript" src="http://localhost/dating/wp-content/themes/dating/js/config.js"></script><script type="text/javascript" src="http://localhost/dating/wp-content/themes/dating/js/dateHoster.chooseCity.js"></script>  
</head>
<body>

3 个答案:

答案 0 :(得分:1)

我自己的解决方案:

一些PHP文件使用UTF而不是没有BOM的UTF进行编码,这会导致错失解释。

答案 1 :(得分:0)

  1. 使用notepad++
  2. 打开PHP文件
  3. 在“编码”选项卡中,选择“转换为UTF-8”。它将BOM从文件的开头删除。

答案 2 :(得分:-1)

您的视口元标记缺少自结束标记。尝试:

<meta name="viewport" />

编辑:此外,很难确切看到,但您可能有两个关闭script标签。