Javascript 如何使用ejs加载可选的css标记?
我正在尝试使用Node.js/Express.js路由加载可选的、特定于页面的样式表,但在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'
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”)
,但我发现只使用子对象更简单、更小