我正在尝试使用每个页面上包含的标头ejs文件创建一个Node网站。
当我加载index.ejs页面时,我还希望将变量从服务器传递到我的标题页面。
我可能是错的,但是似乎做到这一点的最佳方法是将变量从服务器传递到索引页,再传递到标头。
目前,我看到的唯一示例是以下代码片段:
<%- include("header",{title:"your_title"}) %>
要注意的是,我需要用我在服务器端设置的"your_title"
变量替换title
。
有没有办法做到这一点?
我的直觉是它可能看起来像以下内容:
<% runHeader = function(title){ %>
<%- include('../partials/header', {title: title}); %>
<%}; %>
不幸的是,include在这里似乎无法正常运行,并且标头根本无法加载。
任何帮助将不胜感激!
答案 0 :(得分:0)
因此,我发现要执行此操作的最佳方法是在项目文件夹下创建一个“ views”文件夹。 views文件夹将包含一个名为“ title.ejs”的ejs文件,然后调用应类似于<%- include("title") -%>
,它将在同一目录中查找该ejs文件。我会说在标题文件中添加一些示例HTML,然后一切正常。
确保已安装NPM ejs,然后在nodefile中使用const ejs = require("ejs")
;和app.set('view engine', 'ejs');
和app.use(express.static("public"));
在同一node.js文件中。
希望这很有意义,祝你好运。