首页 > 解决方案 > HTML 文件中的 EJS 相对路径“包含”问题

问题描述

我的“index.ejs”文件有问题...

ejs文件的当前内容:

<!DOCTYPE html>
<html lang="en" dir="ltr">

  <!-- THIS SECTION IS FOR <head> TAG THAT WILL BE STORED INSIDE "so_head-tag.ejs" -->
  <%- include('/home/username/Desktop/www/website.com/views/partials/so_head-tag.ejs') %>

<body>

  <!-- THIS SECTION IS FOR NAVIGATION BAR THAT WILL BE STORED INSIDE "so_header.ejs" -->
  <%- include('/home/username/Desktop/www/website.com/views/partials/so_header.ejs') %>

  <div class="filler">

  </div>

  <!-- THIS SECTION IS FOR FOOTER BAR THAT WILL BE STORED INSIDE "so_footer.ejs" -->
  <%- include('/home/username/Desktop/www/website.com/views/partials/so_footer.ejs') %>

  <!-- THIS SECTION IS FOR JAVASCRIPT FILES THAT WILL BE STORED INSIDE "so_javacript.ejs" -->
  <%- include('/home/username/Desktop/www/website.com/views/partials/so_javacript.ejs') %>

</body>

</html>

在当前配置中,页面完美呈现。这里唯一的问题是,我们给出了绝对路径。因此,当我尝试将文件复制到新服务器时,因为用户名可能不同,我必须手动将这些用户名更改为我复制这些文件的每台服务器。我想使用某种相对路径方法。

文件的当前位置如下:

在此处输入图像描述

我真的坚持提供相对路径,因为一旦我在 ejs 文件中使用它就会引发错误:

<%- include(__dirname + '/views/partials/so_footer.ejs') %>

参考错误:

未定义目录名。

感谢您的回复。

标签: javascriptexpressejs

解决方案


要包含子模板文件,您需要提供从父模板到子模板的相对路径。

例如,从pages/index.ejs、到包括partials/so_head-tag.ejs,您可以使用:

 <%- include('../partials/so_head-tag.ejs') %>

推荐阅读