저는 AngularJS에서 작동하는 Rails 백엔드 API를 보유하고 있습니다. Angular는 HTML5 pushState를 사용하도록 구성되어 있습니다. 즉, 앵글 URL은 #
없이 브라우저에 나타납니다. 이 변경 사항은 사용자가 브라우저에서 URL을 복사하여 나중에 수동으로 입력 할 수 있다는 문제를 야기합니다. 즉, 사용자는 AngularJS 대신 Rails (내 맥락에서만 API 백엔드)에 의해 직접 처리됩니다.json이 아닌 모든 요청을 특정 작업으로 다시 잡는 방법은 무엇입니까?
/resources
이 main#my_action
대신 resources#index
로 리디렉션해야합니다 예를 들어
같은 요청합니다. 다른 핸들에
는 요청과 같은 :
여전히 resources#index
에 의해 처리되어야한다
/resources.json
.
따라서, .json
으로 끝나지 않는 백엔드에 대한 모든 요청은 main#index
(URL을 AngularJS에 위임해야 함)로 리디렉션되도록 요청하므로 Angular가 처리 할 수 있습니다.
다른 경로 조합을 시도했지만 요청을 올바르게 리디렉션하지 못하는 것 같습니다.
# routes.rb
constraints(format: 'json') do
# API routes here...
end
get '*', to: 'main#index'
# or..
get '', to: 'main#index'