Ответ 1
Я нашел решение.
Вам нужно включить режим HTML5 для AngularJS:
angular.module('app').config(['$routeProvider', '$locationProvider',
function ($routeProvider, $locationProvider) {
...
$locationProvider.html5Mode(true);
}]
)
Вам также нужно добавить тег <base>
html:
<html>
<head>
<base href="/">
...
</head>
</html>
Он исправляет неверную обработку URL-адреса Angular, когда вы снова нажимаете Enter в URL-адрес URL-адреса браузера. Без этого будет повторяться последний "домен":
локальный: 3000/авт/sign_in
локальный: 3000/авт/авт/sign_in
...
Вам также необходимо написать правильный маршрут на стороне сервера (в Rails) для всех SPA-маршрутов:
конфигурации /routes.rb
root 'application#main'
get '*path', to: 'application#main'