【发布时间】:2014-06-17 23:11:52
【问题描述】:
所以我创建了一个带有两条路由的 node.js 服务器。我使用 fs 从视图文件夹中获取 html 文件,然后将它们附加到页面。在那些 html 文件中,我有一个指向 css 文件的正常链接,这似乎不起作用。这是我的 node.js 应用程序:
var port = 1357;
var http = require('http'),
path = require('path'),
mime = require('mime'),
fs = require('fs');
var app = http.createServer( function(req, res) {
if (req.url === '/home') {
fs.readFile('views/index.html', function(err, page) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(page);
res.end();
});
}
else if (req.url === '/about') {
fs.readFile('views/about.html', function(err, page) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(page);
res.end();
});
}
else {
res.writeHead(301,
{Location: '/home'}
);
res.end();
}
});
app.listen(port);
console.log('Server running on port: ' + port)
在我拥有的 html 文件中:
<link rel="stylesheet" type="text/css" href="./styles/styles.css">
它不起作用。在 chrome 的控制台中,我得到“资源解释为样式表,但使用 MIME 类型 text/html 传输。”
【问题讨论】:
-
您真正缺少的是静态文件的静态路由,但是您使用 catch all 路由设置服务器的方式,然后使用 if/else 语句检查 URL 似乎有些复杂和刚性。我建议看看 Express。
标签: javascript html css node.js