我发现的教程使用了express,但如果没有它,我该怎么办呢?
这是我的createServer()
。
http.createServer((req, res) => {
fs.readFile('./public/styles/style.css', (err, content) => {
res.writeHead(200, {'Content-type':'text/css'});
res.end(content);
});
fs.readFile('./public/index.html', (err, content) => {
res.writeHead(200, {'Content-type':'text/html'});
res.end(content);
});
}).listen(port);
有时这很有效。但是,在某些重新加载中,它只显示纯文本样式表或样式表不会加载。
答案 0 :(得分:2)
您的示例代码将两个文件提供给访问它的任何浏览器。您没有任何逻辑可以查看请求并找出浏览器需要的文件。
此外,这是一场比赛。无论readFile
操作首先完成,都可以首先传递其文件。
因此,你的结果的不可预测性来自那场比赛。
建议:在浏览器中使用View Source...
。
答案 1 :(得分:1)
你可能只有一个if
来检查传入请求的来源
http.createServer((req, res) => {
if ( req.url == 'index.html' )
...
if ( req.url == 'style.css' )
...
Express路由器只是比它更聪明的东西 - 但它还必须检查哪条路由与传入请求匹配。