【发布时间】:2014-04-08 21:10:51
【问题描述】:
我的 Angular 应用程序中有以下代码。
app.config(function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when("/users/:u_id/restaurants/:r_id/menus/:m_id/sections/:sec_id/items", { templateUrl: "/assets/menus/items.html", controller: "MenuItemCtrl" })
});
当我使用导航到路径时它工作正常
<a href="./sections/{{section.id}}/items">View Items</a>
但是当我刷新页面或直接转到 url 时,它会引发 rails 路由错误
No route matches [GET] "/users/3/restaurants/3/menus/4/sections/4/items"
如果我在 routes.rb 中创建此路由,它只会返回与响应关联的 JSON,并且不会路由到正确的模板。
有人知道如何解决这个问题吗?
【问题讨论】:
-
在 Rails 中的路由配置末尾添加一个“catch all”路由:
get '(*url)' => 'home#index'在本例中,home_controller 的 index() 方法为单页应用程序提供服务。详情请见this answer。
标签: ruby-on-rails angularjs ruby-on-rails-4 rails-routing angular-routing