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 名称中的大小写正确。
我的 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 名称中的大小写正确。