【问题标题】:Angular routing on rails轨道上的角度路由
【发布时间】:2015-06-30 18:42:11
【问题描述】:

如何使用 Angular 服务所有路由,能够向服务器执行 $http 请求? (我用的是html5mode)

如果我尝试从地址行访问某个地址,我会收到 404 错误。

如果我在路线中写下类似:

root 'users#index', anchor:false

root 'users#index'
get "*path" => 'users#index'

Angular 提供来自地址行的所有路由,但我无法对服务器执行任何请求(因为它们都被重定向到 users#index)。

【问题讨论】:

    标签: ruby-on-rails angularjs ruby-on-rails-4 routes angular-ui-router


    【解决方案1】:

    Rails 的通配符路线将优先。因此,您需要将 Angular 部件命名为它自己的 URL。我通常使用 /app 来处理 Angular 的所有内容。这是我通常放入routes.rb 文件的内容:

    get "/app", to: "main#app"
    get "/app/*path", to: "main#app"
    root to: "main#index"
    

    您还需要将此标签添加到主布局的<head>

    <base href="/app/">
    

    这会让 Angular 知道所有 URL 都基于 /app 命名空间前缀。

    【讨论】:

    • 非常感谢您的回答。当然它可以工作,但这并不是一个很好的解决方法,因为您仍然可以从地址行到达一些路径,并且 url 是错误的。
    猜你喜欢
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 2015-06-13
    • 2014-09-11
    相关资源
    最近更新 更多