【问题标题】:href link between two webpages on server in node.js with express package and EJS template engine带有express包和EJS模板引擎的node.js中服务器上两个网页之间的href链接
【发布时间】:2016-12-25 08:16:24
【问题描述】:

我有一个server_render.js,如下所示。我使用了 NPM 的 express 包。我在views 目录中有两个网页,一个是home.ejs,另一个是portal.ejs。我用的是 EJS 模板引擎。

var express=require('express')
var app=express()
const port=process.env.PORT || 10002

//app.use(express.static(__dirname+'/public'))

//template engine
app.set('view engine','ejs');

//homepage
app.get('/',function(req,res){
    res.render('home.ejs');
})
//signin page: 127.0.0.1:10002/signin
app.get('/signin',function(req,res){
    res.render('portal.ejs');
});

//run nodejs loop server
app.listen(port,function(err){
    if(err){
        throw err
    }
    console.log('server is listening on '+port+' ...')
})

views/home.ejs 看起来像这样:

<!DOCTYPE html>
<html lang='en'>
<head>
    <title>Portal</title>
</head>
<body>
<div>You need to <a href='portal.ejs'>sign-in</a></div>
</body>
</html>

views/portal.ejs 是这样的:

<!DOCTYPE html>
<html lang='en'>
<head>
    <title>Portal</title>
</head>
<body>
<input name="username" id="username" type="text" placeholder="username"></input>
<input name="password" id="password" type="text" placeholder="password"></input>
</body>
</html>

我想创建一个从home.ejsportal.ejs 的链接。我试过href="portal.ejs" 但它没有用。我想知道这是什么方法。

【问题讨论】:

  • 我对 ejs 不太熟悉,但你试过win.loadURL('portal.ejs')吗?

标签: javascript node.js express template-engine


【解决方案1】:

您无法链接到实际的 ejs 文件。在您的代码中,您声明了以下路径:

    //homepage
app.get('/',function(req,res){
    res.render('home.ejs');
})
//signin page: 127.0.0.1:10002/signin
app.get('/signin',function(req,res){
    res.render('portal.ejs');
});

这意味着您的 express 应用的网址位于“/”和“/signin”。在这两个路径中,您已声明将 home.ejs 或 portal.ejs 呈现为输出 HTML。

只需将链接指向“/”和“/signin”,而不是实际的模板文件。

【讨论】:

    猜你喜欢
    • 2015-12-16
    • 2019-07-22
    • 2020-12-24
    • 1970-01-01
    • 2011-08-14
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    相关资源
    最近更新 更多