如何将css和脚本文件引用到node.js应用程序中?

我已经阅读了这个链接Node.js – 外部的JS和CSS文件(只是使用node.js不表示),并有所了解,但仍然不知道在哪里插入他们,在我的情况。 考虑一个'Hello World'node.js应用程序下行,2行,链接和脚本,在头部分将无法正常工作。 我猜是因为他们不是networking参考。 那么,我如何将它们包含进去? 如果我喜欢链接build议,他们会在头部之外?

var http = require('http'); var html = '<html>'+ '<head>'+ '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'+ '<link rel="stylesheet" type="text/css" href="./mystyle.css">'+ '<script src="./myscript.js"></script>'+ '</head>'+ '<body>'+ '<p>Hello World!</p>'+ '</body>'+ '</html>'; http.createServer(function(request, response) { response.writeHead(200, {'Content-Type': 'text/html'}); response.write(html); response.end(); }).listen(80); 

你应该使用response.writeHead,而不是request.writeHead。

而且,当前代码将返回相同的文件,无论js或css请求。

基本上,你需要服务器来提供你的公共文件。 现在最简单的方法就是使用express,并设置静态中间件。

但是,如果你真的不想使用快递,我仍然认为最简单的方法是使用连接静态中间件。

有些东西是:

 var http = require('http'); var static = require('static')('/'); http.createServer(static).listen(80); 

这将创build一个基本的Web服务器提供您的/目录中的文件。

我明白了,终于! 就像我说的那样,它会帮助我理解node.js和浏览器之间的基本结构和交互。 谢谢大家。 这是代码。

 var http = require('http'); var fs = require('fs'); var i = 0; var html = '<html>'+ '<head>'+ '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'+ '<link rel="stylesheet" type="text/css" href="./mystyle.css">'+ '<script src="./myscript.js"></script>'+ '</head>'+ '<body>'+ '<p>Hello World!</p>'+ '</body>'+ '</html>'; http.createServer(function(request, response) { i++; console.log('Request #'+i+': '+request.url); if (request.url.indexOf('.js') != -1) { fs.readFile(__dirname + '/misc/myscript.js', function (err, data) { if (err) console.log(err); else { console.log('/misc/myscript.js: fs.readFile is successful'); response.setHeader("Content-Length", data.length); response.setHeader("Content-Type", 'text/javascript'); response.statusCode = 200; response.end(data); } }); } else if (request.url.indexOf('.css') != -1) { fs.readFile(__dirname + '/misc/mystyle.css', function (err, data) { if (err) console.log(err); else { console.log('/misc/mystyle.css: fs.readFile is successful'); response.setHeader("Content-Length", data.length); response.setHeader("Content-Type", 'text/css'); response.statusCode = 200; response.end(data); } }); } else { response.writeHead(200, {'Content-Type': 'text/html'}); response.write(html); response.end(); } }).listen(80);