当前位置: 首页 > 面试题库 >

如何在Rails 4中为AngularJS正确设置根路由?

方宏富
2023-03-14
问题内容

我在将Rails路由与AngularJS集成时遇到了麻烦。

当我在浏览器输入中转到“ localhost:3000”时,它将我重定向到“ localhost:3000 /#/ auth / sign_in”

但“ sign_in”模板无法呈现。

然后,第二,如果我转到“ localhost:3000 /#/”,它会将我重定向到“ localhost:3000 /#/ auth /
sign_in”,并正确渲染“ sign_in”模板。

当我转到“ localhost:3000”然后渲染“ sign_in”时,如何解决?

此处的路由器代码:http :
//pastie.org/8917505

谢谢!


问题答案:

我找到了解决方案。

您需要为AngularJS 启用 HTML5模式

angular.module('app').config(['$routeProvider', '$locationProvider',
  function ($routeProvider, $locationProvider) { 
  ...
    $locationProvider.html5Mode(true);
  }]
)

您还需要添加<base>html标签:

<html>
  <head>
    <base href="/">
      ...
  </head>
</html>

当您再次在浏览器URL输入中按Enter时,它修复了Angular对URL路径的不正确处理。没有这个,最后的“域”将被重复:

本地主机:3000 / auth / sign_in

本地主机:3000 / auth / auth / sign_in

您还需要在服务器端(在Rails中)为所有SPA路由编写正确的路由:

config / routes.rb

  root 'application#main'

  get '*path', to: 'application#main'


 类似资料:
  • 问题内容: 我想从而不是从站点根目录开始导航。 例如 当我的网址是 我该怎么办? 问题答案: 当用户导航到时,将基本标记添加到正在提供的主HTML文件中: 可以在开发人员指南/使用$ location中 找到更多信息。

  • 问题内容: 遵循OnlyOffice帮助中心的说明,将创建由浏览器声明为无效的安全证书,因为它是自签名的。 目的是在适用于NextCloud的Docker上使用OnlyOffice的服务器,该服务器已在另一台服务器上正常运行。 当前,已在说明建议的目录中创建证书: 我已经按照所有给定的步骤进行操作,但是它不起作用。 有没有办法使用LetsEncrypt代替自签名证书? 我不是IT管理人员,我是一个

  • 我正在尝试使用IntelliJ IDE来做一些flutter编程。我在C:\users\pam\appdata\local\Android\SDK中使用了Android SDK,并且在System Settings>Android SDK下的Android SDK Location中显示了相同的路径。 但是当我尝试构建一个新的flutter项目(使用创建的演示代码)时,构建失败了,出现消息“SDK

  • 我的源代码位于如下文件夹结构中: MyGitroot/MyProj/Module1/SRC/Main/Groovy/COM/MyPak/Module1 MyGitroot/MyProj/Module2/SRC/Main/Groovy/COM/MyPak/Module2 MyGitroot/MyProj/Module3/SRC/Main/Groovy/COM/MyPak/Module3 Gradle

  • 我想知道我在Android Studio 3.0 Beta 2的Lombok设置中做错了什么? 这就是我的 Gradle 构建文件的样子: 我已经安装了lombok插件,lombok的东西也在IDE中正确显示,但当我想构建项目时,Gradle找不到lombok创建的getter/setter。我试着按照教程https://projectlombok.org/setup/android和其他关于此设

  • 我的Java规范:JRE:1.8_U60,JDK:1.8_U60 但不幸的是,我没有任何选择来创建一个外汇项目。没有称为JavaFX的子节。 如何正确地为Eclipse Mars设置JFX(如果设置完全不起作用)?这里还有一个类似的问题。