【问题标题】:Routed apps must fallback to index.html with Angular and Rails on Heroku路由应用程序必须使用 Heroku 上的 Angular 和 Rails 回退到 index.html
【发布时间】:2018-01-21 16:20:08
【问题描述】:

我正在开发一个使用 angular 5 作为前端的 rails api(无视图)应用程序。两个框架都按照here提议的结构集成在同一个项目中。

应用程序部署在 Heroku 上。该应用程序的第一页是例如example.com/home。当我在浏览器中刷新页面时,页面不再显示,并且在浏览器中出现 404 错误。来自电子邮件的链接也是如此。

/home 确实没有轨道路线,因为这是一条有角度的路线。

我发现这个anwser 引用了这个angular doc,指出必须在网络服务器上设置一个到index.html 的后备路由,以处理来自电子邮件、外部来源或刷新页面的链接。

我使用 nginx 在本地安装上进行了测试。默认情况下,刷新会产生 404 错误,但会在配置文件中添加规则:

try_files $uri $uri/ /index.html;

解决问题。

如何在 Heroku 上实现这一点?

【问题讨论】:

  • 感谢 Heroku 支持,我可能已经找到了解决方案,使用 this article

标签: ruby-on-rails angular heroku routing


【解决方案1】:

我通过将我的应用程序部署拆分为两个 Heroku 应用程序解决了这个问题:一个用于后端,一个用于前端。

使用 api 运行 rails 服务器的后端应用程序。

运行节点 server.js 的前端应用程序,如 here 所述。

这解决了节点服务器正在处理前端路径请求时的页面重新加载问题。

api url 的参数化是使用环境变量为前端完成的,如 show here

【讨论】:

    猜你喜欢
    • 2013-10-13
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多