htmlModeを使えばexample.com/#/aa
となっているのをexample.com/aa
ととてもシンプルにすることができます。
しかし、これをリロードしようとすると、/aaにGETしてしまいます。
対処方法としてはバックエンドのフレームワークで問答無用で同じhtmlを返す事でしょうか…
app.coffee
app = angular
.module "app", ["ngRoute"]
.config ($routeProvider, $locationProvider) ->
$locationProvider.html5Mode true
$routeProvider
.when "/",
templateUrl: "/templates/app.html"
controller: "IndexCtrl"
.otherwise
redirectTo: "/"
return
.controller "IndexCtrl", ($scope, $http) ->
console.log "hhh"
index.html
<body>
<base href="/"/>
<div ng-app="app" class="app_route" ng-view></div>
</body>
baseタグがないと動かないようです。
routerにSinatraやExpressを使って、どのルーティングでもindex.html
を書くように書いたら動きそう
--追記--
Nginxのrewrite使っても良さそう