Javascript 如何使用ejs加载可选的css标记?

Javascript 如何使用ejs加载可选的css标记?,javascript,html,css,ejs,Javascript,Html,Css,Ejs,我正在尝试使用Node.js/Express.js路由加载可选的、特定于页面的样式表,但在ejs部分遇到了问题: 快递: res.render('index', { title: 'Home', css: 'index'}); // some pages won't have the 'css' parameter. res.render('index', {data:{title:'Home',css:'index'}}); EJS加载: <link rel='stylesheet'

我正在尝试使用Node.js/Express.js路由加载可选的、特定于页面的样式表,但在
ejs
部分遇到了问题:

快递:

res.render('index', { title: 'Home', css: 'index'}); // some pages won't have the 'css' parameter.
res.render('index', {data:{title:'Home',css:'index'}});
EJS加载:

<link rel='stylesheet' href='/static/stylesheets/shared.css' />
<% if (css) { %>
  <link rel='stylesheet' href='/static/stylesheets/<%- css %>.css' />
<% } %>

看看这位官员,我的if声明遵循了他们的逻辑:

<% if (user) { %>
  <h2><%= user.name %></h2>
<% } %>

我收到错误
未定义css
。按照这种逻辑,如果未定义
user
,ejs网站上给出的示例是否也会导致错误


我做错了什么?

尝试在子对象中发送所有数据,如下所示:

快递:

res.render('index', { title: 'Home', css: 'index'}); // some pages won't have the 'css' parameter.
res.render('index', {data:{title:'Home',css:'index'}});

EJS:



如果您只是在如下对象上选择发送:
{title:'Home',css:'index'}
{title:'Home'}
,那么变量
css
可以定义,也可以不定义

您可以将检查更改为
if(typeof css!==“undefined”)
,但我发现只使用子对象更简单、更小