我试图在同一台服务器上使用angular2应用程序托管我的快速休息服务。 阅读不同的相关帖子后,我发现各种解决方案都在本地服务器 http://localhost:3000 上工作但是当我在Heroku上托管我的应用程序时,我尝试访问我的快速路线以/ api / ...开头运作良好。但无法访问angular2 UI页面,它开始在页面上显示Not Found消息。
app.all('*', (req, res) => {
console.log(`[TRACE] Server 404 request: ${req.originalUrl}`);
res.sendFile(path.join(__dirname, 'dist/index.html'));
});
或
app.use(function(req, res, next) {
res.sendFile(path.join(__dirname, 'dist/index.html'));
});
或
app.get('/*', function (req, res) {
res.sendFile(path.join(__dirname, 'dist/index.html'));
});
或
app.get(/^\/([^a]|a[^p]|ap[^i]|api[^/]).*$/,(req,res) => {
res.sendFile(path.join(__dirname, 'dist/index.html'));
});
答案 0 :(得分:1)
当我在托管服务器上部署我的应用程序时,我发现dist目录没有部署在包含运行 ng build --prod 之后创建的Angular app build的服务器上。
首先,我手动将其上传到托管服务器,我的应用程序开始正常运行。然后它出现在我的脑海中,每次都是一个手动任务,所以我找到了两个解决这个问题的方法。
其次,我从此链接 https://docs.npmjs.com/misc/scripts 中读取了package.json文档,并了解了预安装和安装后脚本,并更新了我的package.json文件以获得以下脚本。< / p>
"scripts": {
"ng": "ng",
"start": "node index.js",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"postinstall": "ng build --prod"
},
阅读本文以便在heroku https://paucls.wordpress.com/2016/11/25/deploy-angular-2-cli-app-to-heroku/
上进行部署