1. ホーム
  2. javascript

[解決済み] angular-ui-router URLの'#'記号を削除する方法

2023-07-14 04:46:34

質問

angular-ui-routerライブラリを使っているのですが、URLの問題があります。

私は次のようなコードを持っています。

app.js:

app.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
    .state('state', {
        url: '/state',
        templateUrl: 'templates/state.html',
        onEnter: function () {
            /*... code ...*/
        }
    })});

index.htmlを表示します。

<a href="#/state">STATE</a>

これはうまくいくのですが、'#' を <a> タグから'#'を取り除くと、これは動作しません。

URLから'#'記号を削除するにはどうしたらよいですか?

どのように解決するのですか?

ハッシュタグを使用しないナビゲーションを行うには、HTML5Modeを有効にする必要があります。

app.config(["$locationProvider", function($locationProvider) {
  $locationProvider.html5Mode(true);
}]);

また、アプリのルートURLをangularに伝えるために、以下のコードを <head> に追加してください。

<base href="/">

HTML5モードへの対応はブラウザに依存することに注意してください。History APIに対応していない場合。 Angularはhashbangにフォールバックします。 .