表达 js 并为视图提供静态文件

Express js and serving static files for views

我在我的项目中有几个观点,比方说:"view1"、"view2"、"view3"。 查看引擎是 "ejs"。对于这些视图,我有不同的 scripts/css 文件。我也有部分像:header.ejs 和 footer.ejs,我包括在视图顶部(页眉)和底部(页脚):

如图所示view1.ejs正在使用两个样式表(styleA,styleB)和脚本(scriptA,scriptB)。

当我要对这些静态文件使用另一个视图时,一切正常,因为我在视图中包含 header.ejs 和 footer.ejs。

但是由于我对另一个视图使用了不同的样式表和脚本,而且我不想包含 "styleA" 和 "styleB",所以我遇到了问题。我只想保留相同的部分页眉和页脚,但里面有另一个链接。

是否有任何 "Assets Manager" 或其他解决方案来管理所有这些链接?

当我想在 20 多页中使用 header.ejs 时,事情变得复杂,因为没有解决我的问题,我需要包括所有 links/styles,其中一些是不必要的。

在 express 中,您可以将样式和脚本作为数组传递以呈现您的 ejs 模板:

app.get('/', function (req, res) {
  res.render('index', { styles: ['styleA.css', 'styleB.css'], scripts: ['scriptA.js', 'scriptB.js']});
});

现在更新您的 ejs 模板。首先是样式部分:

<% styles.forEach(function(sty){ %>
   <link href="<%- sty %>" rel="stylesheet">
<% });%>

然后,脚本部分:

<% scripts.forEach(function(scr){ %>
  <script src="<%- scr %>"></script>
<% });%>