The point is that a route that's loaded by angularJS with the routeProvider never reaches the server. The same route, when typed or accessed by external link or bookmark, reaches the server.
The typical way to solve this is to respond to any request for a view (not the API) with the initial page. You can do it with a rewrite in nginx, with a rack middleware, with a nodejs middleware, anything that is able to anlyze the request path and headers, and change what the actual servers sees as the request path.
When the app page (say, "index.html") comes back to the browser, angular sees the original path and loads the correct view.