gpt4 book ai didi

ruby-on-rails - Rails 路由 + AngularJS 路由

转载 作者:行者123 更新时间:2023-12-01 11:39:27 25 4
gpt4 key购买 nike

我的 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 路由中,您必须将该请求重定向到 Angular 基本 url,以便可以执行 Angular 。

否则,rails 会响应请求。这就是 html5mode 路由的工作方式。

编辑:

假设您的 Angular 是从 application#home 提供的。您希望所有 GET 请求都重定向到那里,这样 angular 就可以工作了。

添加这条路线 get '*path', to: 'application#home'将使所有 GET 请求成为 Angular 页面。

关于ruby-on-rails - Rails 路由 + AngularJS 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22948267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com