繁体   English   中英

Node.js将不会发送CSS作为响应

[英]Node.js won't send CSS in response

我正在尝试使用node.js设置客户端/服务器程序。 我有以下代码,连接后将返回一个.html文件。

JavaScript:

var http = require('http');
const fs = require('fs');
var server;

fs.readFile('./FrontPage.html', function (err, html){
if (err){
    throw err;
}

server = http.createServer(function (req, res) {
    res.writeHead(200, {
        "Content-Type": "text/html"
    });
    res.write(html);
    res.end();
    console.log("HTTP response sent");
});

var port = 3000;
server.listen(port, function () {
    console.log("Server listening on port " + port);
}); 
});

HTML:

<head>
    <link rel="stylesheet" type="text/css" href="./css/FrontPageCSS.css">
</head>



<body style="background-image:url(./img/bg.jpg)">

<div id="header">
        <a href="./frontPage.html"><img src="./img/Logo.png" height="5%" width="5%" alt="logo"></a>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
        <script src="./script/FrontPageJS.js"></script>
</div>

<div id="buttonWrapper">
    <div id="first" class="first">
        This is my first button
    </div>

    <div id="second" class="second">
        This is my second button
    </div>
</div>

当我在浏览器的端口3000上访问localhost时,它将返回不带CSS的.html文件。 当我通过它的路径单独打开.html时,CSS可以正常工作。

我的问题:为什么CSS不包含在响应中,我如何包含它?

HTML不包含CSS文件。 它们是在HTML解析期间由浏览器下载的。

您的示例不起作用,因为当浏览器尝试获取css / FrontPageCSS.css时,由于服务器始终以FrontPage.html文件的内容进行响应,因此它会获取HTML输出。

我建议您使用一些Web框架作为表达: http : //expressjs.com/en/index.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM