2

我对 node.js 很陌生,所以如果这是一个糟糕的问题,我深表歉意。我在这里有一个简单的 HTTP 服务器:

var http = require('http');

http.createServer(function (request, response){

    response.writeHead(200, {"Content-Type":"text/html"});
//  response.write("<html><head><script type = 'text/javascript'>alert('hello');</script></head></html>");
    response.write("<html><head><script type = 'text/javascript' src = 'alerter.js'></script></head></html>");
    response.end();
}).listen(8000);

console.log("Server has started.");

alerter.js 包含一行:

alert("hello");

为什么使用注释掉的行会正确地引起警报,但调用 alerter.js 什么也没做?

4

2 回答 2

4

正如 Paul 和 Timothy 所指出的,您的问题是,当浏览器使用外部引用获取您的 html 时,它会返回服务器并要求它提供 alerter.js,并期望将脚本交付给它。但是,无论请求要求什么,您的服务器总是发送相同的内容,因此浏览器永远不会获取脚本。

您至少需要将服务器更改为处理对 alerter.js 的请求。实际上,我会使用 Connect 的静态文件处理程序来执行此操作;将脚本、样式表和图像等所有资产放在一个目录(通常称为“公共”)中,并告诉静态处理程序从那里为它们提供服务。

于 2012-06-10T03:54:29.867 回答
3

您缺少一个 ' 来结束 type 属性。

于 2012-06-10T03:26:03.770 回答