路由的应用必须使用Heroku上的Angular和Rails回退到index.html

时间:2018-01-21 16:20:08

标签: ruby-on-rails angular heroku routing

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

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

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

我发现此anwser正在向angular doc提出申诉,指出必须在网络服务器上设置到index.html的备用路由,以处理来自电子邮件,外部来源或刷新的链接页。

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

try_files $uri $uri/ /index.html;

解决问题。

如何在Heroku上实现这一目标?

1 个答案:

答案 0 :(得分:0)

我通过在两个heroku应用程序中部署应用程序来解决了这个问题:一个用于后端,一个用于前端。

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

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

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

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