2017-09-06 3 views
2

私はAngularを初めて使い、複数のルートが同じview/templateUrlとコントローラにつながる可能性を理解しようとしています。ここで私が書いたものです:

angular 
    .module('mwsApp', [ 
    'ngAnimate', 
    'ngCookies', 
    'ngResource', 
    'ngRoute', 
    'ngSanitize', 
    'ngTouch', 
    'ui.bootstrap' 
    ]) 
    .config(function ($routeProvider, $locationProvider) { 
    // debugger 
    $routeProvider 
     .when('/', { 
     templateUrl: 'index.html', 
     controller: 'MainCtrl as vm', 
     }) 
     .when('/rika', { 
     templateUrl: 'index.html', 
     controller: 'MainCtrl as vm', 
     }) 
     // .otherwise({ 
     // redirectTo: '/' 
     // }); 

     $locationProvider.html5Mode(true).hashPrefix("!"); 
    }); 

問題:現在、私は「localhostを:9000 /」に行けば、それは私の正しいバージョンを示しているが、私は「localhostを:9000 /リカ」に行けば、それが与えます私は "/リカを得ることができません"。

デバッグ:問題をhtml5Modeに絞り込んだ。私は#を取り除こうとしている! AngularはURLに自動的に追加されますが、そうするとエラーがポップアップします。

誰でも簡単に入力できます。

+0

アドレスハッシュを取り除くことはできません。これは、角度付き(AJAXの場合もあります)などのルーティングの目的を破ることはできません。 –

+0

はい、あなたはそれを個人的に耳にしませんでしたが、それは可能です – user7951676

+1

[this]を見てください(https://stackoverflow.com/questions/28629774/how-to-remove-the-hash- from-the-angularjs-ng-route) – Jax

答えて

1

あなたは、その後、いくつかのserver on productionuncommentにしているときは、local development#を取り除くカントので、あなたがこの行に

$locationProvider.html5Mode(true).hashPrefix("!"); 

をコメントする必要があるが、そうでなければ、あなたを#

を削除するためにそれを使用します」 reloads in local development

+0

これはまだ稼働していませんが、site.com/rikaでも問題が発生します –

+0

あなたのhtmlにベースタグを追加しています。 nginx、s3など – Rakeschand

+0

^のように使用しているあなたのサーバー上では、単純な#笑を削除するために過度に複雑な音... –

関連する問題