【问题标题】:Why does EJS not accept absolute paths for includes?为什么 EJS 不接受包含的绝对路径?
【发布时间】:2020-03-05 07:54:36
【问题描述】:

根据 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

【问题讨论】:

  • 你有什么问题?你的代码是什么?你得到什么错误?或者如果您没有收到任何错误,您期望的输出是什么而您没有得到?你并不陌生,已经读过这篇文章:stackoverflow.com/help/how-to-ask
  • Soooo,我的回答怎么样?我们在这里为您浪费空闲时间。至少给一点反馈... :-(
  • @JorgeFuentesGonzález 在与这些视图引擎苦苦挣扎后,我最终切换到了 Handlebars.js。 EJS 只是没有做我认为它可以做的事情。但是您的回答非常有帮助,因为更改实际上并不是主 EJS 存储库的一部分。我对 GIT 知之甚少,所以无法理解更多。

标签: node.js express layout ejs template-engine


【解决方案1】:

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

该提交未合并到主分支中,因此不在您下载的版本中。这就是“拉取请求”。这是某人编写的代码,但并未拉入存储库的主要源代码中。

具有该代码的实际存储库是“拉取请求”的来源,即这个: 因此,如果您想要那段代码,您应该前往该存储库(通过单击那里),下载它并手动将其放置在应有的位置。请注意,您将下载站在那里的版本,这有点旧。

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

另一种方法是使用git 工具。下载主仓库,然后合并拉取请求,这和每年做一次是一样的,也有完全相同的问题,此外,如果你是一个 git 新手,可能会发生冲突,这是一项更乏味的工作。

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

【讨论】:

    猜你喜欢
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    • 2021-04-26
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多