我正在开发一个使用 Yoeman Angular 包构建的 Angular 前端站点。该项目使用 Node.js 构建包托管在 Heroku 中。
Heroku 构建项目没有错误,它运行 Gulp 和 Bower 来安装依赖项。在执行启动脚本并编译项目后,索引页面加载没有问题,但任何不是主页的其他页面(例如登录页面)将陷入“无法获取/登录”消息。
这似乎是一个常见问题,因为我已经阅读了很多关于如何在 Heroku 上解决 Angular 路由的帖子。这些是我目前采取的所有行动,但都没有成功:
在 Express 中创建一个 Node.js 网络服务器(我已经尝试了这个脚本的多种风格)
var gzippo = require('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
当在 Apache 服务器上独立运行 dist 文件或使用上面的 Node.js 脚本时,站点在本地运行完美。
如果有任何意见可以帮助我解决 Heroku 和 Angular 上的这个问题,我将不胜感激。提前致谢。
最佳答案
我猜经过这么长时间你已经能够解决这个问题(或者你转向其他事情)。
无论如何,对于遇到类似问题的任何人,我都使用 Angular2 + Express 应用程序创建了一个公共(public)存储库,该应用程序已配置为在 Heroku 上部署。
https://github.com/pabloruiz55/Angular-Express-Heroku
我无法完全回答这个问题,因为我缺少诸如您遇到的错误之类的信息,但希望看看我的入门项目,任何人都可以弄明白。
关于angularjs - Heroku 和 Angular 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40715148/