如何将所有流量重定向到 Rails 内的 Angular 应用程序(使用 Nginx)

How to redirect all traffic to Angular app inside Rails (using Nginx)

好的,基本上我使用的是 Nginx、Passenger、Rails 和 Angular。我创建了一个 Angular 应用程序,它编译到 Rails' public 文件夹。 Rails 在 Angular 应用程序下提供 API。

我希望 www.mydomain.com/admin 到位于 public 目录中的此 admin.html 文件的所有流量。我在 Rails config/routes.rb 中有一条指向 admin.html 的路线,如下所示:

match     '/admin/*all' => redirect("/admin.html"), via: 'get'

但这似乎并不能解决问题。我还希望 Nginx 将 admin/* 的所有流量重定向到 public 文件夹中的这个 admin.html 文件。

顺便说一下,admin.html 是 Angular 应用程序。

编辑:Angular 应用未由 Rails

提供服务

目前,Rails 中完全没有观看次数。 Rails 只是独立 Angular 应用程序下的 API,恰好位于 Rails 应用程序内的 public 目录中。我在这个阶段选择这种方法有两个原因:一个是我可能会在稍后阶段将 Angular 部署到单独的服务器上,但不是现在。所以保持 Angular 完全独立和分开是个好主意。第二,目前,将 Angular 保持在 Rails 应用程序之上将有助于减少延迟。

整个设置是不断发展的体验的一部分,我想继续保持我的选择。

向加载 angular 应用程序的操作添加路由,然后在 routes.rb 之后

中拥有您的常规资源(可能是 API)

routes.rb

match 'admin', to: 'admin#angular', via: :all

admin_controller.rb

def angular
    render 'layouts/admin'
end

那么layouts/admin.html.haml就是你的Angular申请

参考:https://thinkster.io/angular-rails/(很好的教程顺便说一句)