【发布时间】:2019-07-19 09:40:05
【问题描述】:
我第一次尝试学习如何为一个简单的网站设置 node.js 服务器,但遇到了一些奇怪的行为。当我从我的计算机打开我的 index.html 文件时,它会完美打开,所有 CSS 都正常工作。但是,然后我设置了一个基本的 node.js 服务器,当通过我的浏览器访问 index.html 文件时,它只加载 html 而不是 CSS。
我对此非常陌生,因此无法尝试太多,还因为代码非常简单,所以看不到缺少什么(如果有帮助,我尝试遵循 this 教程)。我还发现了另一个在这里看起来相似的问题,但它没有答案,也没有真正的帮助,我确实检查了所有文件都是 UTF-8。
HTML:
<html>
<head>
<title>My Page</title>
<link rel="stylesheet" href="styles.css" type="text/css">
</head>
<body>
<h1>A headline</h1>
</body>
</html>
还有 node.js 服务器:
const http = require("http");
const fs = require("fs");
const server = http.createServer((req, res) => {
res.writeHead(200, {"Content-Type": "text/html"});
const myReadStream = fs.createReadStream(__dirname + "/index.html", "utf8");
myReadStream.pipe(res);
});
server.listen(3000, "127.0.0.1");
console.log("Listening to port 3000");
当我将 CSS 包含在 <style> 标记中并直接在 index.html 中时,它确实有效,但我尝试将 <link rel="stylesheet" href="styles.css" type="text/css"> 放在 <style> 标记之间,但仍然没有(如果这是必要的,因为当我打开 html 文件时它会完美显示)。我也试过删除type=text/css,但这似乎并没有改变任何东西。任何帮助将不胜感激!
【问题讨论】:
-
我不是节点专家,但看起来您只为
index.html提供服务,没有别的。您的服务器不知道styles.css是什么,因此当您的页面加载时,它会尝试从服务器请求styles.css,但它无法处理该请求。我可能找错树了。