2014-11-06 41 views
1

我是Node.js的新手,我正在使用Node.js,HTML,CSS,JS设计基本网站。Node.js中的HTML页面之间的重定向

在我的应用程序在本地服务器上调用localhost:4000 /之后,我能够获得主页。在我的主页上有一个contactus标签。当我点击它时,它应该重定向到contactus.html页面。但是当我在我的服务器上运行它时,它显示无法获取/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

在此先感谢!

+0

尽量只'

  • Contact
  • ' – Paramore 2014-11-06 07:12:30

    +0

    不过,这仍呈现同样的错误。我必须通过Javascript处理它。但我不知道如何处理它..问题是服务器无法访问contactus.html page.thankyou作出回应 – MAK 2014-11-06 07:17:29

    +0

    由于您使用express,只需阅读express的API,然后再提出这样的问题。 – creeper 2014-11-06 07:19:10

    回答

    3

    您尚未设置contactus.html的路由。为此添加另一个获取条目。

    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); 
        }); 
    
    +0

    这正是我所需要的。谢谢:) – MAK 2014-11-06 07:22:53

    +0

    如果你想动态地设置路线,使用第二种方法.. – 2014-11-06 07:42:00

    +0

    好的...这也工作正常,谢谢你 – MAK 2014-11-06 09:21:54

    2

    HTML Firstone,你需要添加在你的页面的链接:

    <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); 
    }); 
    

    您especify需要作为第一个参数在app.get请求(在这种情况下contactus.html)