この例は、$ routeProviderと$ locationProviderについてよく理解するのに役立ちます。
私が見る唯一の問題は相対リンクであり、このためにテンプレートが正しく読み込まれていないことです。
from the docs regarding HTML5 mode
あなたは(あなたのメインのHTMLファイルの先頭にURLベースを指定する必要がありますいずれかのすべての相対リンク、画像、スクリプトなどを確認してください)か、絶対URL(/で始まる)を使用する必要がありますアプリケーションのルートとは異なることが多いドキュメントの最初の絶対URLを使用して相対URLが絶対URLに解決されるため、どこでも可能です。 あなたの場合、スラッシュ/ in href属性($ location.pathはこれを自動的に行います)を追加することも、経路を設定する際にtemplateUrlを追加することもできます。これにより、example.com/tags/anotherのようなルートが回避され、テンプレートが適切に読み込まれるようになります。
<div>
<a href="/">Home</a> |
<a href="/another">another</a> |
<a href="/tags/1">tags/1</a>
</div>
<div ng-view></div>
そして
app.config(function($locationProvider, $routeProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when('/', {
templateUrl: '/partials/template1.html',
controller: 'ctrl1'
})
.when('/tags/:tagId', {
templateUrl: '/partials/template2.html',
controller: 'ctrl2'
})
.when('/another', {
templateUrl: '/partials/template1.html',
controller: 'ctrl1'
})
.otherwise({ redirectTo: '/' });
});
をサーバーからこれを実行する必要がありますChromeを使用している場合:ここで
は作品例です。
コンソールエラー? –
コンソールエラーなし。 – user3295929
@PankajParkar、よく私はスタックのオーバーフローについてさらに見て、あなたの誰かに出くわしました:http://stackoverflow.com/questions/28351124/mvc5-and-angular-js-routing-urls-not-matching locationProviderを使用しないことをお勧めします。これは、MVCルーティングを台無しにして、あなたのアドバイスに従います。 locationProviderを削除するか、falseに設定すると問題が解決されるようです。私はまだこれがどうして起こるのかを調査することです – user3295929