gpt4 book ai didi

javascript - 如何使用 ejs 加载可选的 css 标签?

转载 作者:太空宇宙 更新时间:2023-11-04 06:11:06 25 4
gpt4 key购买 nike

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

express :

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

EJS 加载:

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

看官方EJS documentation ,我的 if 语句遵循他们的逻辑:

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

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

我在这里做错了什么?

最佳答案

尝试像这样在子对象中发送所有数据:

express :

res.render('index', {data:{title:'Home',css:'index'}});

res.render('index', {data:{title:'Home'}});

EJS:

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

如果您只是发送,可以选择像这样的对象:{title:'Home',css:'index'}{title:'Home'}那么变量 css 可能会被定义,也可能不会被定义。

您可以将检查更改为 if (typeof css !== 'undefined'),但我发现仅使用子对象更容易且更小。

关于javascript - 如何使用 ejs 加载可选的 css 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56400894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com