我有一个 node .JS应用程序运行在AWS EC2的Linux上,使用fs模块读取HTML模板文件.以下是应用程序的当前 struct :
/server.js
/templates/my-template.html
/services/template-reading-service.js
HTML模板将始终位于该位置,但是,模板阅读服务可能会从我使用的模板阅读服务中移动到不同的位置(更深的子目录等).readFileSync()加载文件,如下所示:
var templateContent = fs.readFileSync('./templates/my-template.html', 'utf8');
这会引发以下错误:
Error: ENOENT, no such file or directory './templates/my-template.html'
我想这是因为路径"/"的缘故正在解析为"/services/"目录,而不是应用程序根目录.我也try 过把路径改成"/模板/我的模板."html",这很有效,但它似乎很脆弱,因为我认为这只是相对于"上一个目录"的解析.如果我将模板读取服务移动到更深的子目录中,则该路径将中断.
那么,相对于应用程序的根引用文件的正确方法是什么?