javascript - 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') %>
参考错误:
未定义目录名。
感谢您的回复。
解决方案
要包含子模板文件,您需要提供从父模板到子模板的相对路径。
例如,从pages/index.ejs
、到包括partials/so_head-tag.ejs
,您可以使用:
<%- include('../partials/so_head-tag.ejs') %>