【发布时间】:2016-10-28 14:30:44
【问题描述】:
我正在使用 ejs 模板在不同的 div 中生成一些内容。
假设它看起来像这样:
<% include test1 %>
<% include test2 %>
<% include test3 %>
在这些模板中的每一个中,我都想知道我自动在哪个模板中。例如,假设我在“templatei.ejs”文件中(其中 i 是第 i 个模板的索引)。现在有什么办法让我知道里面的模板名称吗?
这是每个模板文件的外观:
<div>
<h2>header info</h2>
<p>some text comes here</p>
<a href="/<% this.fileName() %>">now I want this url to be a link to a seperate page that only loads one template<a>
</div>
this.fileName() 不起作用,只是为了表达我的意思。 我实际上想为我的每个 div 添加一个指向单独页面的链接。
我不使用 javascript 生成 url 的原因是我想要 爬虫找到它,我认为爬虫不会抓取页面 js修改后。
【问题讨论】:
-
听起来像一个 X/Y 问题,为什么你需要知道你在哪个模板中,当你是编写模板的人时,它们都被限制在父文件的范围内他们包括在内?
-
由于我使用了很多模板,我不想手动浏览所有模板,我想看看是否有任何其他方式可以自动完成。
-
但是为什么你的模板需要知道文件名,我想不出当前模板的文件名与模板本身相关的任何原因?
-
因为我有单独的页面,例如“/single/test1”,它只显示一个 div。在主目录中,我在一页中看到所有这些 div。并且我想在我的主页中提供指向所有这些单独页面的链接,以便它们可以被抓取。
-
我猜唯一的方法是改变 EJS 并在
include函数中添加一些东西,或者编写以某种方式与该函数挂钩的中间件?
标签: javascript html node.js templates ejs