gpt4 book ai didi

html - Nodejs 在没有 CSS 的情况下加载我的 HTML

转载 作者:行者123 更新时间:2023-11-28 05:14:54 26 4
gpt4 key购买 nike

我在 nodeJS 中用 cloud9 做了一个小程序应该启动我的 html。它有效但没有CSS。我尝试了很多东西,但没有找到解决方案。

var http = require("http");
var fs = require("fs");
var events = require('events');
var eventEmitter = new events.EventEmitter();

fs.readFile('homepage.html', function(err, data) {
if (err) return console.log(err);

var server = http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/html'});
response.writeHead(200, {'Content-Type': 'text/css'});
response.write(data);
response.end();
}).listen(8081);
});

console.log("Server running.");

我的 HTML:

<!DOCTYPE html>
<html>
<head>
<title>My project</title>
<meta charset="UTF-8">
<link rel="stylesheet" href="css/style.css"/>
</head>
<body>
<h1>My project</h1>
<p>coming soon</p>
</body>

`

我的 CSS:

h1{
font-size: 4px;
}

我尝试在我的浏览器上只打开 .html,我的 h1 是 4px。

最佳答案

<link rel="stylesheet" href="css/style.css"/>

您告诉浏览器加载 css/style.css

浏览器向服务器请求它。

response.writeHead(200, {'Content-Type': 'text/html'});

服务器说“这是一些 HTML!”

response.writeHead(200, {'Content-Type': 'text/css'});

然后它说“这是一些 CSS!”

这很奇怪。您可以发送 HTML 文档独立的样式表。您不能同时发送两者。

response.write(data);

然后服务器发送homepage.html的内容

因此,当浏览器请求样式表时,它会获得主页的另一个副本。

需要关注the request object它告诉你浏览器要求什么。尤其要注意 methodurl 属性。

然后您需要为该特定 URL 提供正确的响应(其中应该包括文件类型的正确内容类型,如果不是请求则可能是 404 错误对于你期待的东西)。

目前您总是发送主页。如果浏览器要求输入 /,您将发送主页。如果它要求 /css/style.css,则发送主页。如果它要求 /this/does/not/exist,则发送主页。

关于html - Nodejs 在没有 CSS 的情况下加载我的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39367645/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com