我一直在研究node.js,但似乎无法正确地提供CSS。以前,我将它嵌入到HTML的头部标签中,但现在我正在尝试学习如何将其作为单独的文件提供。
到目前为止,这就是我所做的。在加载服务器下的HTML之前,我尝试仅将其写入:
//This is all my main module
var http = require('http');
var router = require('./router.js');
var server = http.createServer(function (request, response) {
response.writeHead(200,{"Content-type" : "text/css"});
var fileContents = fs.readFileSync('./views/styles.css', {encoding: "utf8"}, function(err, data) {
if (!err) {
response.write(data);
} else {
console.log(err);
}
});
router.home(request, response);
router.user(request, response);
});
server.listen(3000);
我在路由模块中调用的home函数如下所示。它也完美地发挥作用:
function home(request, response) {
//if url == "/" && GET
if (request.url === "/"){
if(request.method.toLowerCase() === "get") {
response.writeHead(200, commonHeaders);
renderer.view("header", {}, response);
renderer.view("search", {}, response);
renderer.view("footer", {}, response);
response.end();
} else {
//if url == "/" && POST
//redirect to /:username
request.on("data", function(postBody) {
var query = querystring.parse(postBody.toString());
response.writeHead(303, {"Location":"/" + query.username});
response.end();
});
}
}
}
我所有的HTML都可以完美加载。但是,如果我在Chrome中使用开发工具,它会显示我已经创建了一个带有styles.css文件的单独文件夹,但是它是空的。为什么它会创建我的文件,但我的CSS没有被写入其中呢?
我做错了什么吗?我的HTML头部也链接了样式表。如何在node.js应用程序中提供CSS服务?我不知道为什么这行不通。
styles.css
文件。 - m-a-r-c-e-l-i-n-o