正文中的节点HTML

我写了一个简单的HTTP服务器,服务于一些HTML。 代码如下:

var http = require('http'); http.createServer(function(req, res) { res.writeHeader(200, {"Content-Type": "text/html"}); var html = '<DOCTYPE!>' + ' <html>' + ' <head>' + ' <title>' + ' Test page' + ' </title>' + ' </head>' + ' <body>' + ' <p>' + ' This is a test page !' + ' </p>' + ' </body>' + ' </html>'; res.write(html); res.end(); }).listen(8080); 

生成的HTML页面如下所示:

 <html> <head> </head> <body> <doctype!> <title> Test page </title> <p> This is a test page ! </p> </doctype!> </body> </html> 

所以我的问题如下:

  • 为什么在HTML的正文中包含html“string”?
  • 除了使用模板引擎(jade),是否可以在HTML中使用缩进?

最后一个问题是有点分开的:

  • 如果我有一个名为index.html的页面只显示img.jpg 。 我怎么知道一个用户对img.jpg请求和index.html有关? 我img.jpg的“相关”是指:“ img.jpgindex.html的链接/依赖”。

先谢谢你 !

为什么在HTML的正文中包含html“string”?

那是因为<DOCTYPE!>无效。 它应该是:

 <!DOCTYPE html> 

现在看来,它更像是一个浏览器的元素,它试图标准化标记并把它放到<body>


除了使用模板引擎(jade),是否可以在HTML中使用缩进?

包括Jade在内的许多模板引擎实际上会缩小标记,消除所有不必要的空白以减less带宽消耗。

但是,你可以看看使用“美化”,如HTML 。


如果我有一个名为index.html的页面只显示img.jpg。 我怎么知道一个用户对img.jpg的请求和index.html有关? 我所说的“相关”是指:“img.jpg是index.html的链接/依赖”。

您可以在大多数浏览器debugging器中查看“资源”,这些debugging器将列出您的页面请求的图像,脚本,样式表等。

你也可以尝试网页抓取你的应用程序,也许用jsdom :

 jsdom.env('http://localhost:8080/', [ 'http://code.jquery.com/jquery.min.js' ], function (err, window) { var $ = window.$; var hrefs = $('a[href]').map(function () { return $(this).attr('href'); }).get(); console.log(hrefs); }); 

这实际上不是最终的HTML。 您的服务器提供的HTML正是您认为正在服务的内容…浏览器发现该HTML有问题。

<DOCTYPE!>

浏览器不知道<DOCTYPE!>是什么,所以它假设它是某种任意标签。 当一个浏览器看到一个任意的标签时,它假定它是在本体中。 而且,如果使用不平衡标签纠错,则会在正文的末尾使用</DOCTYPE!>closures<DOCTYPE!>标签。

你打算使用什么是<!DOCTYPE>或更可能, <!DOCTYPE html>