【发布时间】:2019-03-03 08:03:10
【问题描述】:
我正在练习纯节点 js,并且我遇到了一件对 http 协议感到不安的事情。 经过一个小时左右的搜索和测试我的代码后,我终于用 css 为我的 html 页面提供了服务。这是我的代码:
const server = http.createServer((req, res)=>{
if(req.url === "/"){
fs.readFile("index.html", "UTF-8", function(err, data){
res.writeHead(200, {"Content-Type": "text/html"});
res.end(data);
});
}else if(req.url === "/styles.css")){
var cssPath = path.join(__dirname, 'public', req.url);
var fileStream = fs.createReadStream(cssPath, "UTF-8");
res.writeHead(200, {"Content-Type": "text/css"});
fileStream.pipe(res);
};
});
但我不明白它为什么有效。好吧,我只在浏览器中输入了“/”,没有输入“/styles.css”。以及为什么我在 URL 栏中看不到“/styles.css”。 我确定这是因为 http 协议是如何设计的,但是你能帮忙解释一下这个协议吗? 提前谢谢你。
【问题讨论】:
-
你有一个错字! ... else if(req.url == "/styles.css")) 中的第二个右括号是多余的!
-
哦,谢谢,我换代码的时候没注意