AngularJS はデフォルトで # 記号を使用して URL をルーティングします。
例:
http://example.com/
http://example.com/#/about
http://example.com/#/contact
クリーンな URL を取得し、URL からハッシュ記号を削除するのは簡単です。
2 つのことを完了するだけです。
$location サービス
Angular では、$location サービスがアドレス バーの URL を解決してアプリケーションに変更を加え、その逆も同様です。
$location サービスとそれが提供する機能を理解するには、Angular $location の公式ドキュメントを一読することを強くお勧めします。
$locationProvider と html5Mode
$locationProvider モジュールを使用し、html5Mode を true に設定します。
Angular アプリケーションを定義し、ルートを構成するときにこれを行います。
angular.module('scotchy', []) .config(function($routeProvider, $locationProvider) { $routeProvider .when('/', { templateUrl : 'partials/home.html', controller : mainController }) .when('/about', { templateUrl : 'partials/about.html', controller : mainController }) .when('/contact', { templateUrl : 'partials/contact.html', controller : mainController }); // use the HTML5 History API $locationProvider.html5Mode(true); });
HTML5 History API とは何ですか? これは、Angular がページを更新せずにブラウザの履歴を操作するための標準的な方法です。詳細については、こちらをご覧ください。非常に優れた HTML5 History API の記事があります。
相対リンクの
アプリケーション全体で相対リンクを使用するには、ドキュメントの
に<!doctype html> <html> <head> <meta charset="utf-8"> <base href="/"> </head>
これを設定する方法はたくさんありますが、HTML5Mode を true に設定すると、アプリケーションのルートが異なる場合 (/my-base など)、常に機能します。それを開始パスとして使用します。
古いブラウザのコールバック
$location サービスは、HTML5 閲覧履歴 API をサポートしていないブラウザに対して hashbang メソッドを自動的にコールバックします。
すべてが透過的に行われるため、設定を行う必要はありません。 Angular $location ドキュメントから、コールバック メソッドとその仕組みを確認できます。
概要
これは、Angular アプリで適切な URL を取得し、ハッシュ タグを削除する簡単な方法です。超クリーンで超高速な Angular アプリをお楽しみください。