Error: ENOENT, no such file or directory '/var/www/html/views while publishing app on ubuntu

Error: ENOENT, no such file or directory '/var/www/html/views while publishing app on ubuntu

我的 nodejs 应用程序文件夹结构如下所示。

Index.html 文件位于 views 文件夹中,public 文件夹包含部分页面。

下面是 index.html 的一个小片段,当节点 运行 在本地机器上时它工作正常。

<section id="sidebar"  ng-controller="menuController" ng-init="init()">
    <% include ..\public\partials\_menubar.html %>
</section>

但是当我 运行 服务器上的代码时,它给我错误。

Error: ENOENT, no such file or directory        
'/var/www/html/views/..\public\partials\_menubar.html'
 at Object.fs.openSync (fs.js:432:18)
 at Object.fs.readFileSync (fs.js:286:15)
 at includeSource (/var/www/html/node_modules/ejs/lib/ejs.js:194:17)
 at /var/www/html/node_modules/ejs/lib/ejs.js:528:26
 at Array.forEach (native)
 at Object.Template.generateSource (/var/www/html/node_modules/ejs/lib/ejs.js:505:15)
 at Object.Template.compile (/var/www/html/node_modules/ejs/lib/ejs.js:427:12)
 at Object.compile (/var/www/html/node_modules/ejs/lib/ejs.js:288:16)
 at handleCache (/var/www/html/node_modules/ejs/lib/ejs.js:147:16)
 at View.exports.renderFile [as engine]     (/var/www/html/node_modules/ejs/lib/ejs.js:350:14)

我试过使用下面的代码但没有成功。

app.use(express.static(path.join(__dirname, 'public'))); 

Linux 使用 / 作为目录分隔符,因此无法找到文件,因为您正在使用 windows' \ 分隔符。

另请注意,除 windows 外,linux 区分大小写,因此您需要确保 file/directory 名称中的大小写正确。