如何将样式表变量传入EJS模板?Node.js技术实现问询
没问题!既然你已经成功把CSS文件内容读取到MY_CSS变量,并且通过res.render传给了EJS模板,那接下来在EJS里引入这个样式就很简单了,只需要两步:
1. 在EJS模板的<head>里添加<style>标签
直接用EJS的非转义输出语法把MY_CSS变量的内容插入到<style>标签中,代码示例如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>My Page</title> <!-- 插入读取到的CSS内容 --> <style><%- MY_CSS %></style> </head> <body> <!-- 你的页面内容 --> <h1>Hello from EJS!</h1> </body> </html>
2. 为什么用<%- %>而不是<%= %>?
这里必须用<%- %>(非转义输出),而不是常用的<%= %>(转义输出)。因为<%= %>会把变量里的特殊字符(比如CSS中的{、}、:或者引号)转换成HTML实体,导致CSS代码失效;而<%- %>会直接输出原始的文本内容,完美适配CSS这类代码的插入场景。
如果你的CSS文件里意外包含了EJS的语法标记(比如<%),那可能需要额外处理,但一般纯CSS文件不会出现这种情况,所以直接用上面的写法就可以正常生效啦!
内容的提问来源于stack exchange,提问作者theJuls
相关产品推荐
相关产品推荐

