如何将所有流量重定向到 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/(很好的教程顺便说一句)
好的,基本上我使用的是 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
之后
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/(很好的教程顺便说一句)