2012-10-12 9 views
18

Angular.jsアプリケーションを展開するWebディレクトリのパスから抽象化された方法で開発することは可能ですか?Angular.jsのサブディレクトリ内でのルーティング

Webサーバーのサブディレクトリhttp://example.com/myproject/にAngular.jsアプリケーションを配置しようとしていますが、ルータがWebサーバーのルート-にリダイレクトされます。以下は

は私Angular.jsアプリです:

var myproject = angular.module('myproject', []); 

myproject.config(function($routeProvider, $locationProvider) { 
    $routeProvider. 
    when('/', {templateUrl: 'partials/index.html', controller: IndexCtrl}). 
    otherwise({redirectTo: '/'}); 

    $locationProvider.html5Mode(true); 
}); 



function IndexCtrl($scope, $location) { 

} 
+1

さらに1つはユーザー名:) – silver

答えて

25

あなた<head></head><base href="/sudirectory"/>を設定してみてください。これは、私が働くために必要なことです。IIRC

注意:これはhref = "#"を持つアンカータグを混乱させ、イメージsrcsなどのルートとして機能します。

+0

これはトリックでした!ありがとうございました。 – sssilver

+5

潜在的に役立つヒント:を設定した後に、ルータの部分テンプレートリソースに絶対パスではなく相対パスを使用することを忘れないでください。 – sssilver

+1

相対パスで動作しますが、 'getSomething /'として指定されたAJAX呼び出しは、他のルーティング情報を持つ可能性のあるURLに追加されるため、 '/ getSomething /'として設定する必要があります。それ。私は 'mydomain/getSomething /'に解決するAJAX呼び出しをしたいが、私の角度ルータが 'mydomain/article/1 /'に私を持っていれば、それは追加される。グローバルなbase_url変数を作成し、それをすべてのAJAX URLの前に追加する以外に選択肢はありませんでした。 Angular内の設定としてこれを設定するのはいいですが、幸いなことにプロジェクトはちょうど手で行うには十分です。 –

関連する問題