在Node.js中的HTML页面之间redirect
我是Node.js的新手,我正在使用Node.js,HTML,CSS,JSdevise一个基本的网站。
在我的应用程序在本地服务器上调用localhost:4000 /之后,我能够获得主页。 在我的主页我有一个contactus标签。 当我点击它应该redirect到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>
这是我的目录结构:
提前致谢!!!
您尚未设置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); });
如果你想dynamic设置路由。 您可以通过以下方式设置路线。 然后,您不必为每个路线添加多个条目。 但要小心安全性,因为用户可以访问目录中的任何文件。
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); });
HTML Firstone,你需要在你的页面添加链接:
<li><a href="contactus.html" >Contact</a></li>
replace这一行:
<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
请求中指定第一个参数(在本例中为contactus.html)