我有一个非常简单的网络服务器:
var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/html' });
fs.readFile('./index.html', 'utf-8', function (err, content) {
if (err) {
res.end('something went wrong.');
return;
}
res.end(content);
});
}).listen(8080);
console.log("Server running on port 8080.")
这会使我的index.html没有任何问题,但是如果我尝试通过脚本标记在我的index.html中引用另一个文件,那么该网站就会卡住,无法找到服务器目录中存在的文件。
如何将这些文件提供给我的index.html文件?
请注意,我发现使用Express
可以更轻松地完成此操作,但我不想使用Express
。我正在努力了解事情背后的情况。提前致谢。
答案 0 :(得分:0)
您需要将目录显示为public。建议在开发Node.js应用程序时使用框架。
以下是没有框架的服务器文件的代码。
var basePath = __dirname;
var http = require('http');
var fs = require('fs');
var path = require('path');
http.createServer(function(req, res) {
var stream = fs.createReadStream(path.join(basePath, req.url));
stream.on('error', function() {
res.writeHead(404);
res.end();
});
stream.pipe(res);
}).listen(9999);
参考:Node itself can serve static files without express or any other module..?