我是Node.js的新手,我正在使用Node.js,HTML,CSS,JS设计一个基本网站。
在我的应用程序中在本地服务器上调用localhost:4000 /后,我可以获得主页。在我的主页上,我有一个联系人选项卡。当我点击它时,它应该重定向到contactus.html页面。但是当我在我的服务器上运行它时,它显示出Can not GET /contactus.html。
这是我的服务器:
var fs=require('fs');
var express=require('express');
var app=express();
app.use(express.static(__dirname + '/static'));
app.get('/', function(req,res) {
data= fs.readFile('/home/swift-03/WebstormProjects/website/static/HTML/home.html', function (err, data) {
res.setHeader('Content-Type', 'text/html');
res.send(data);
});
});
app.listen(4000);
我的Html页面是:
<!DOCTYPE html>
<html>
<head>
<script>
function contactus() {
document.location="contactus.html";
}
</script>
</head>
<body>
<div class="pos_right">
<ul class="div">
<li><a href="#" onclick="contactus()">Contact</a></li>
</ul>
</div>
</body>
</html>
这是我的目录结构:
提前致谢!!!
答案 0 :(得分:3)
您尚未为contactus.html设置路线。为此添加另一个get条目。
app.get('/contactus.html', function(req,res) {
data= fs.readFile('/home/swift-03/WebstormProjects/website/static/HTML/contactus.html', function (err, data) {
res.setHeader('Content-Type', 'text/html');
res.send(data);
});
如果要动态设置路线。您可以通过以下方式设置路线。然后,您不必为每条路线添加多个条目。但要小心安全性,因为用户可以访问目录中的任何文件..
app.get('/*', function(req,res) {
data= fs.readFile('/home/swift-03/WebstormProjects/website/static/HTML/' + req.url, function (err, data) {
res.setHeader('Content-Type', 'text/html');
res.send(data);
});
答案 1 :(得分:2)
<强> HTML 强> 首先,您需要在页面中添加链接:
<li><a href="contactus.html" >Contact</a></li>
取代这一行:
<a href="#" onclick="contactus()">Contact</a></li>
您的服务器
app.get('/contactus.html', function(req,res) {
data= fs.readFile('/home/swift-03/WebstormProjects/website/static/HTML/contactus.html', function (err, data) {
//Other information required...
res.setHeader('Content-Type', 'text/html');
res.send(data);
});
您需要在app.get
请求中指定especify作为第一个参数(在本例中为contactus.html)