为什么 EJS 不接受包含的绝对路径?

Why does EJS not accept absolute paths for includes?

根据 EJS github 页面,EJS 应该接受 include 文件的绝对路径,但它对我不起作用。

所以这不起作用

<% include views/partials/global/header.ejs %> 

我刚收到错误消息 找不到包含文件 "views/partials/global/header.ejs"

但这确实有效:

<% include ../../partials/global/header.ejs %>

你是如何让它工作的?这是 Git 提交,表示绝对路径应该有效 https://github.com/tj/ejs/pull/157/commits

好的,现在我注意到了问题。

该提交未合并到主分支中,因此不在您下载的版本中。那是 "Pull request"。那是有人写的代码,但没有拉入存储库的主要源代码。

具有该代码的实际存储库是 "Pull request" 来自的存储库,即这个: 所以如果你想要那段代码,你应该前往那个存储库(通过点击那里),下载它并手动把它放在它应该的地方。请注意,您将下载站在那里的版本,有点旧。

您可以通过算法获取差异并手动编辑您现在安装的文件,这样您在合并此提交时保留最新更改。这不是一件容易的事,因为很多东西在发布 5 年后可能会被破坏(也许不是因为 ejs 是一个废弃的项目)。

另一种方法是使用 git 工具。下载主存储库,然后合并拉取请求,这与每年执行一次相同,并且存在完全相同的问题,此外,如果您是 git 的新手,可能会发生冲突,这是一项更乏味的工作.

我想你需要阅读一个关于 git 存储库(和 GitHub)如何工作的小教程,因为这只是一小部分,如果你会遇到更多问题只是寻找认为它们已合并的提交。当您将 GitHub 版本与您从 npm 安装的版本进行比较时,有发布、分支和很多东西要遵循。