2016-12-25 6 views
5

私はAngular ui.routerを使用してアプリケーションをナビゲートしています。 通常、URLは次のようになります。#! ui.routerの意味ですか?

http://localhost:8001/#/start 

しかし、私の場合には、それは次のようになります。それは

http://localhost:8001/#!/start 

何を意味するのでしょうか?

また、このサイトからスタートページと異なるURLを呼び出している場合、URLが無効であると思われるため、常にリダイレクトされます。

mainApp.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) { 
'use strict'; 
$urlRouterProvider.otherwise('start'); 
$stateProvider 
    .state('start', { 
     url: '/start', 
     templateUrl: 'views/start.html' 
    }) 
    .state('registration-activate', { 
     url: '/registration/activate/{activationKey}', 
     templateUrl: 'views/registration-activation.html' 
    }) 
    ; 
    }]); 

私はローカルホストを呼び出すようにしようとするたびに:8001 /#/登録/アクティブ/ XYZ私はスタートページにリダイレクトされます。

+2

http://stackoverflow.com/questions/40478676/i-am-using-angular- and-my-url-always-a-a-exclamation-mark/40478862 – Taki

+0

設定を確認しましたが、hashPrefixを設定しませんでした。私はウェブサーバーをシミュレートするためにgulpを使用することは問題ですか? – Kahuna

答えて

0

ブラウザがHTML5ブラウザangularJSが#!

にリダイレクトされます場合にはそうでない場合は、それが唯一#になります。

documentation here$location)を読んで、これがなぜ発生するのかについてさらに調べてください。レガシーブラウザで正規URLを開く

  • - > hashbangのURLにリダイレクト
  • 現代のブラウザで
  • オープニングhashbangのURL - >通常のURL
+0

さて、なぜURLを開くことができないのですか?私はいつもスタートページにリダイレクトされます。 – Kahuna

2

よし、みんなに書き換えます。あなたの説明に感謝します。 私は単に私の設定にこれを追加することによって、リンクからURLを呼び出すことはできません私の問題を解決:

$locationProvider.hashPrefix(''); 
関連する問題