我有一个看起来像这样的文件夹
主要 > 模型 > file1.ejs
|
|> 路线 > file2.ejs
两个 require file1 from file2 代码是 const variable = require("../models/file1.ejs) 假设我相对不想要求模型,为什么 const 变量 = require("/models/file1.ejs") 不起作用。
“/”不是表示从根目录开始吗?
如果我们在另一个文件夹中有大量文件夹,我们如何避免在文件路径中执行“../../../../”?
另外,为什么JS中的代码看起来像Comment = require("./models/comment") 有效,但当您执行 Comment = require("models/comment") 时无效
或者 ejs 中类似 <%- include("partials/header") %> 的内容 <%- include("/partials/header") %> 不起作用。
在路径设置期间是否始终从根目录开始?当它假设我的路径从根目录开始时,以“/”开头似乎最终会导致错误。
最佳答案
例如考虑下面的代码,
var filename = "file1.ejs";
var fullpath = __dirname + "/models/" + filename;
阅读有关 __dirname here 的文档
这就是提供绝对路径的方法,其中 __dirname 将为您提供直到当前工作目录的路径。
相对路径的工作原理如下,
例如,如果您尝试从 models
目录中的其他文件 file2.ejs
访问位于 models
目录中的文件 file1.ejs
目录 models2
其中 models2
目录也在 models
内,那么您可以提供相对路径,
即文件夹结构如下,
basePath/models/file1.ejs
basePath/models/models2/file2.ejs
并从 file2.ejs 访问 file1.ejs,如下所示,
var path = '../file1.ejs' // going one folder back and getting inside parent models directory where the file1.ejs resides
关于javascript - Node.js 中的文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59871515/