将Angular应用程序部署到Heroku时出现“未找到”错误

时间:2019-11-11 20:17:42

标签: node.js angular heroku

按照此处的说明尝试使用Github将Angular应用程序部署到Heroku:https://itnext.io/how-to-deploy-angular-application-to-heroku-1d56e09c5147

部署成功,但是当我打开应用程序时,在屏幕上出现“未找到”错误。尝试将'app.use'和'res.sendFile'中的位置更改一千次,但是没有运气,现在这是我的'server.js'代码:

这些是我的app.use和res.sendFile函数:

app.use(express.static(__dirname + '/dist/app_name'));
res.sendFile(path.join(__dirname + '/dist/app_name/index.html'));

文件夹结构:

├── angular.json
├── browserslist
├── e2e
├── karma.conf.js
├── node_modules
├── package.json
├── package-lock.json
├── README.md
├── server.js
├── src
    ├── app
│   ├── assets
│   ├── environments
│   ├── favicon.ico
│   ├── index.html
│   ├── main.ts
│   ├── polyfills.ts
│   ├── styles.css
│   └── test.ts
├── tsconfig.app.json
├── tsconfig.json
├── tsconfig.spec.json
└── tslint.json

我的猜测是我的部署无法在src文件夹中找到index.html,但是我没有更多的想法可以提供什么路径。

试图删除两个函数中的“ _dirname”,但仍然是相同的问题。

非常感谢所有建议。

1 个答案:

答案 0 :(得分:0)

替换此:

app.use(express.static(__dirname + '/dist/app_name'));
res.sendFile(path.join(__dirname + '/dist/app_name/index.html'));

具有:

app.use(express.static(path.join(__dirname, 'dist','app_name'));
res.sendFile(path.join(__dirname,'dist','app_name','index.html'));