有没有一种很好的方式使用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/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>
希望这可以帮助