有没有一种很好的方式使用EJS组队避免重复使用Express服务器?

假设我的应用程序有两个视图:index.ejs,profile / index.ejs我想使用下面的快速代码路由。

/* GET home page. */ router.get('/', function (req, res, next) { res.render('index'); }); /* GET profile page. */ router.get('/profile', function (req, res, next) { res.render('profile/index'); }); 

应该两个ejs文件都有自举链接?

 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css"> 

如果答案是肯定的,每当我想渲染另一个页面,我应该从CDN重新加载样式和js文件?

我的意思是,当我改变我的EJS模板时,是否有一个很好的方法来保持共同的内容?

有几种方法来实现这一点。

1)。 使用partials并将其包含在每个页面中。

2)。 如果你不喜欢在每个页面中包含partials,那么你可以使用express-ejs-layouts或ejs-locals

对于第一种方法,我们可以有一个partials目录,它将包含我们需要的所有部分。

partials目录

这里是我们的部分

 //partials/head.ejs <meta charset="UTF-8"> <title>EJS Template</title> <link ref="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script> 

这个scipt.js可以包含你想包含的所有脚本。

 //partials/script.js <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"> </script> 

假设我们想要在index.ejs中包含这些部分,那么我们只需要简单地使用<% include partial %>就可以了。

  // index.ejs <!DOCTYPE html> <html lang="en"> <head> <% include partials/head %> </head> <body class="container"> <header> <% include partials/header %> </header> <main> <div class="jumbotron"> <h1>This is great</h1> <p>Welcome to templating using EJS</p> </div> </main> <footer> <% include partials/footer %> </footer> <% include partials/script %> </body> </html> 

希望这可以帮助 !!

不可以。您可以轻松地将用于整个应用程序的脚本和css添加到不同的EJS文件中。

例如。

创build名为header.ejs文件并添加所有链接和脚本。

然后在你的模板中包含这个文件,用这段代码

 <head> <% include header.ejs %> //IN HERE you can add page specific scripts or links </head> 

希望这可以帮助