如何将 .ejs 文件连接到 .html 文件?

How can I connect .ejs files to .html file?

我想将我的 login.ejs 文件连接到 index.html 文件。我的目录如下所示:

UserService directory
   app.js
   views
   - login.ejs
   - signup.ejs
   - dashboard.ejs
Website
   - index.html

我在 Whosebug 上搜索并使用了一些解决方案:

In index.html(用于连接登录页面与 index.html 页面):

<a class="nav-link btn btn-warning signup" href="./UserService/views/login.ejs">Login</a>

在app.js中:

app.get('./views/login.ejs',function(req,res,next){
 res.render('login');
});

我结合了上述解决方案和其他帖子中提到的其他一些解决方案。但是,我继续在网站上获取我的 login.ejs 文件的 code。 请帮忙。

谢谢!

为什么要使路由 './views/login.ejs' 而不是仅仅 './views/login' 删除扩展名是个好习惯 除此之外 您的路线指向另一个位置


app.get('./views/login.ejs',function(req,res,next){
 res.render('login');
});
//which is this => 127.0.0.1:80/views/login.ejs

所以将您的代码更改为

<a class="nav-link btn btn-warning signup" href="./views/login.ejs">Login</a>

要link将ejs页面转为html、php页面,需要到app.js文件中设置相应的视图引擎。

里面app.js

app.set('view engine', 'ejs');
app.set('view engine','html');
app.set('view engine','php');

不要忘记使用 npm install html 安装这些依赖项 最后使用渲染函数渲染任何类型的前端页面,如图所示:

router.get('/', forwardAuthenticated, (req, res) => res.render('index.html')); 

#Incase of a .php file. 
router.get('/', forwardAuthenticated, (req, res) => res.render('index.php')); 

在html/php源代码中,您可以直接使用您创建的路由到link页面。

<a class="nav-link btn btn-warning signup" href="/users/login">Login</a>

为了说明上述陈述,我包含了呈现 login.ejs 文件的路由文件片段:

在routes/users.js

router.get('/login', forwardAuthenticated, (req, res) => res.render('login.ejs'));

希望解决方案有所帮助。谢谢!