为什么Chrome会在"预"标记中加载我的HTML?

Ala*_*rpa 3 html javascript google-chrome arduino

我有一个非常基本的网页,我正在加载Arduino服务器.当我在Safari上查看页面时,一切正常,当我使用检查器时看起来很好.但是当我在Chrome(版本39.0.2)上加载它时,它会将我的所有HTML包装在"pre"标签中,这会阻止我的网页加载(我附上了显示Inspector输出的屏幕截图).它还将我的所有代码从"head"标签移到"body"标签中.首先,这是我的HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>



    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

      <link href='http://fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
      <link href='http://fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='text/css'>

         <!-- LOAD THE JSON DATA -->
              <script type="text/javascript" src="data.txt"></script>
              <link rel="stylesheet" type="text/css" href="home.css">
              <script src="home.js" type="text/javascript"></script>




        <title>CANARI JR. | Home</title>

    </head>


<body onload="preparePage()">

<div id="container">


    <div id="headerDiv">

        <div id="logoDiv"><a href="/">
         <img src="cLogo.png"> 
        </div></a>





     </div>



<div id="contentDiv">


</div>



</div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

现在当我检查我的页面时,我看到了这个:

它包裹了我的所有HTML,实际上关闭了我的身体和html标签之外的标签!

有人在Chrome中看到这里出了什么问题?

编辑1 - 我正在使用Arduino Ethernet Shield从SD卡托管和加载此页面.(它在Safari上完美运行,所以我认为我的代码中有一些东西而不是Arduino的问题).

编辑2 - 我附上了谷歌Chrome Inspector的截图(抱歉 - 复制和粘贴取代了很多角色,所以我去了截屏路线 http://i.stack.imgur.com/d09k8.png

编辑3 - 从Chrome Inspector添加"网络"标签http://i.stack.imgur.com/zL7L1.png

LJᛃ*_*LJᛃ 7

根据您的情景,页面随Content-type: text/plain标题一起提供.这导致chrome将其显示在pre标记中,因为它假定您要将HTML视为文本.您的网络服务器需要编写正确的Content类型标头.

可以在此处找到如何使用arduino以太网屏蔽编写标头的示例.

与上面链接的代码相反,您应该使用类似文件扩展名的内容动态确定内容类型.因此,图像以正确的内容类型(例如image/jpg)传输.