Как обслуживать все маршруты с помощью Angular, имея возможность выполнять $ http-запросы на сервер? (Я использую html5mode)
Если я попытаюсь получить доступ к некоторому адресу из адресной строки, я получаю ошибку 404.
Если я пишу в маршрутах что-то вроде:
root 'users#index', anchor:false
или
root 'users#index'
get "*path" => 'users#index'
Угловой обслуживает все маршруты из адресной строки, но я не могу выполнять какие-либо запросы на сервер (так как все они перенаправляются на индекс пользователей #).
Приоритеты маршрутов Rails будут приоритетными. Таким образом, вам нужно будет проставлять ваши угловые части на свои собственные URL-адреса. Обычно я использую /app
для всего Углового. Вот что я обычно помещаю в файл routes.rb
:
get "/app", to: "main#app"
get "/app/*path", to: "main#app"
root to: "main#index"
Вам также нужно добавить этот тег в <head>
вашего основного макета:
<base href="/app/">
Это позволит Angular знать, чтобы основывать все URL-адреса от префикса пространства имен /app
.