服务器或HTML不是';t显示CSS(但在打开HTML文件时有效)

服务器或HTML不是';t显示CSS(但在打开HTML文件时有效),html,css,node.js,Html,Css,Node.js,我第一次尝试学习如何为一个简单的网站设置node.js服务器,但遇到了一些奇怪的行为。当我从计算机上打开index.html文件时,它会完全打开,所有CSS都正常工作。但是,我随后设置了一个basic node.js服务器,当通过浏览器访问index.html文件时,它只加载html,而不加载CSS 我对这个非常陌生,所以没有尝试过很多,也因为代码非常简单,所以看不到缺少什么(如果有帮助的话,我尝试了下面的教程)。我还发现了另一个问题,似乎在这里类似,但它没有一个答案,也没有真正的帮助,我检查了

我第一次尝试学习如何为一个简单的网站设置node.js服务器,但遇到了一些奇怪的行为。当我从计算机上打开index.html文件时,它会完全打开,所有CSS都正常工作。但是,我随后设置了一个basic node.js服务器,当通过浏览器访问index.html文件时,它只加载html,而不加载CSS

我对这个非常陌生,所以没有尝试过很多,也因为代码非常简单,所以看不到缺少什么(如果有帮助的话,我尝试了下面的教程)。我还发现了另一个问题,似乎在这里类似,但它没有一个答案,也没有真正的帮助,我检查了所有的文件是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>

当我将CSS包含在
标记中并直接包含在index.html中时,它确实起作用,但我尝试将
放在
标记之间,但仍然没有起作用(如果有必要的话,这也会很奇怪,因为当我打开html文件时,它会完美地显示出来)。我也尝试过删除
type=text/css
,但似乎没有任何改变。任何帮助都将不胜感激

您还需要提供
style.css
。您提供的是
index.html
,但在index.html中它正在点击
http://127.0.0.1:300/style.css
当请求到达您的应用程序时,它仍在为
index.html
文件提供服务。(您可以在开发人员工具的网络窗格中确认此操作)


注意:使用最流行的nodejs包很容易实现这一点。

您还需要提供
style.css
。您提供的是
index.html
,但在index.html中它正在点击
http://127.0.0.1:300/style.css
当请求到达您的应用程序时,它仍在为
index.html
文件提供服务。(您可以在开发人员工具的网络窗格中确认此操作)


注意:使用可能是最流行的nodejs包很容易实现这一点。

我不是节点专家,但看起来您只提供了
index.html
,其他什么都没有。您的服务器不知道什么是
styles.css
,因此当您的页面加载时,它试图从服务器请求
styles.css
,但它无法处理该请求。我可能找错了方向。我不是节点专家,但看起来你只提供了
index.html
,其他什么都没有。您的服务器不知道什么是
styles.css
,因此当您的页面加载时,它试图从服务器请求
styles.css
,但它无法处理该请求。我可能是找错树了。我只是想了一个主意——我也必须这样做才能加载图像吗?因为这些似乎不会出现在每一条被击中的路线上,所以你需要处理好每一件事。但是如果你只是想服务,你可以使用一个名为
httpserver
的包来运行一个http服务器?因为这些似乎不会出现在每一条被击中的路线上,所以你需要处理好每一件事。但是,如果您只想提供服务,可以使用名为
httpserver
的包来运行http服务器。
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");
const server = http.createServer(function (req, res) {
  const url = req.url;
  if (url === '/style.css') {
    res.writeHead(200, { 'Content-Type': 'text/css' }); // http header
    fs.createReadStream(__dirname + "/style.css", "utf8").pipe(res);
  } else {
    res.writeHead(200, { 'Content-Type': 'text/html' }); // http header
    fs.createReadStream(__dirname + "/index.html", "utf8").pipe(res);
  }
})