在A2Hosting部署Node.js应用失败:ENOENT文件找不到错误
解决A2Hosting部署Node.js应用的ENOENT错误
核心问题
你代码里的根路由指向了/public/index.html,但实际文件存在/public/html/index.html,路径不匹配导致找不到文件,进而引发部署时「Run JS script」加载异常和访问报错。
修复步骤
- 修正app.js的根路由路径:找到处理根路由的代码(比如用
res.sendFile或静态托管的部分),把目标路径从public/index.html改成public/html/index.html。
举个例子,原代码如果是:
修改为:app.get('/', (req, res) => { res.sendFile(path.join(__dirname, 'public', 'index.html')); });app.get('/', (req, res) => { res.sendFile(path.join(__dirname, 'public', 'html', 'index.html')); }); - 调整静态文件托管设置(可选):如果用了
express.static托管静态资源,要么把index.html移到public根目录下,要么把静态路径改成app.use(express.static('public/html')),同时对应调整路由逻辑。 - 重新部署:代码修改完成后,回到A2Hosting的Node部署页面重新执行「Run JS script」,等待部署完成后再访问应用URL。
额外排查点
- 核对路径大小写:Linux服务器区分大小写,确保代码里的路径大小写和实际文件系统完全一致(比如
Public和public是两个不同路径)。 - 检查文件权限:确保
index.html文件权限为644,所在目录权限为755,避免因权限不足导致服务器无法读取文件。
内容的提问来源于stack exchange,提问作者Pradeep Singh
相关产品推荐
相关产品推荐

