我的本地计算机上有angular 6应用,完成项目后,将其部署到heroku,一切正常运行,当我运行我的应用时,这里是heroku中该应用的链接:Testing App
如您所见,在控制台浏览器中出现以下错误
无法加载资源:服务器的响应状态为404(未找到)
供快速参考,这是server.js
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const path = require('path');
const app = express();
const port = process.env.PORT || 3000
app.use(express.static(path.join(__dirname, '/majeni/dist/majeni/')));
app.use(bodyParser.json());
app.use(cors());
const forceSSL = function () {
return function (req, res, next) {
if (req.headers['x-forwarded-proto'] !== 'https') {
return res.redirect(
['https://', req.get('Host'), req.url].join('')
);
}
next();
}}app.use(forceSSL());
app.get('/*', function (req, res) {
res.sendFile(path.join(__dirname + '/majeni/dist/majeni/index.html'));
});
app.listen(port, () => {
console.log('Server started on port '+port);
});
这是heroku日志。
2018-08-16T17:46:38.891333 + 00:00 app [web.1]:错误:ENOENT:没有这样的文件或目录,统计信息'/app/majeni/dist/majeni/index.html'>
我的代码有什么问题?
答案 0 :(得分:1)
Heroku无法找到dist
目录,因为它不是已提交的存储库的一部分。 dist
目录已添加到.gitignore
文件中。
提交dist
目录通常是一个坏主意,因此我们应该在Heroku上生成它。
您可以通过在package.json
"scripts": {
"postinstall": "ng build"
}
可以找到更多信息in the Heroku docs