Heroku 和 Angular 路由

Posted

技术标签:

【中文标题】Heroku 和 Angular 路由【英文标题】:Heroku and Angular routing 【发布时间】:2017-04-04 13:14:23 【问题描述】:

我正在开发一个使用 Yoeman Angular 包构建的 Angular 前端站点。该项目使用 Node.js 构建包托管在 Heroku 中。

Heroku 构建项目时没有错误,它运行 Gulp 和 Bower 来安装依赖项。启动脚本执行完毕并编译项目后,索引页面加载没有问题,但任何其他不是主页的页面(例如登录页面)都会陷入“无法获取/登录”消息。

这似乎是一个常见问题,因为我已经阅读了很多关于如何解决 Heroku 上的 Angular 路由的帖子。这些是我目前采取的所有行动都没有成功:

    在 Express 中创建一个 Node.js 网络服务器(我已经尝试过这个脚本的多种风格)

    var gzippo = 需要('gzippo'); var express = require('express'); var morgan = require('morgan'); var app = express();

    app.use(morgan('dev')); app.use(gzippo.staticGzip("" + __dirname + "/dist")); app.use('/bower_components', express.static(__dirname + '/bower_components')); app.listen(process.env.PORT || 5000);

    注释 .gitignore 中的 dist 文件夹,以便 Heroku 使用它。 dist 文件夹被推送到 Git 中。

    创建环境变量 NODE_ENV: true, NODE_PATH: true, NPM_CONFIG_PRODUCTION: false

当 dist 文件在 Apache 服务器上独立运行或使用上面的 Node.js 脚本运行时,该站点在本地完美运行。

如果有任何 cmets 可以帮助我在 Heroku 和 Angular 上解决此问题,我将不胜感激。提前致谢。

【问题讨论】:

【参考方案1】:

我猜在这么长时间之后你已经能够解决这个问题(或者你转向其他事情)。

无论如何,对于遇到类似问题的任何人,我都使用 Angular2 + Express 应用程序创建了一个公共存储库,该应用程序已经配置为在 Heroku 上部署。

https://github.com/pabloruiz55/Angular-Express-Heroku

我无法完全回答这个问题,因为我缺少诸如您遇到的错误之类的信息,但希望看看我的入门项目,任何人都可以弄清楚。

【讨论】:

以上是关于Heroku 和 Angular 路由的主要内容,如果未能解决你的问题,请参考以下文章

前端小白之每天学习记录----angula2--

Codeship 和 Heroku 中的 Angular 代码

将 Angular 2 应用程序部署到 Heroku

如何从 Heroku 上的 Django 项目正确地提供我的 Angular 应用程序静态文件?

Angular 2/Nodejs 部署到 heroku 错误 heroku-postbuild: `ng build`

如何在 Heroku 上使用我的 Angular 应用程序解决 CORS 问题