在Node.js中的HTML页面之间重定向

时间:2014-11-06 07:00:49

标签: javascript html node.js

我是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>

这是我的目录结构: enter image description here

提前致谢!!!

2 个答案:

答案 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)