プロジェクトをAngularベースのSPAに移植することに取り組んでいます。現在、サーバー側からテンプレートを提供する、より「伝統的な」ノード/ロコモティブjsアプリです(これに対する適切な用語は知られていません)。
一度にすべてを移行するにはプロジェクトが大きすぎるため、一度に 1 ページずつ角度付きに変換しています。
私の問題: アプリの角度部分をロードすると、すべて正常に動作します。角度のあるルートに正しく行くことができます。ただし、非角度ルート (サーバー側で処理する必要があります) に移動すると、何も読み込まれません (まったく新しいテンプレートが読み込まれるのではなく、ng-view が空白になります)。最初にサーバー側のルートに移動するか、更新を押すと、ページが正しく読み込まれます。
私の推測では、Angular はこれらのルートを処理しようとしており、サーバーに引き継がせる方法がわかりません。
app.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider.when('/something/page1', {
templateUrl: '/page1.html',
controller: 'page1Ctrl'
});
$routeProvider.when('/something/page1/subpage', {
templateUrl: '/subpage.html',
controller: 'subpageCtrl'
});
}]);
これは私のAngular routeProviderです。「それ以外」の指定はありません。サーバー側には次のようなものがあります:
this.match( '/someOtherPage', 'someOtherPage#showstuff');
/someOtherPage に直接アクセスすると、サーバー側から正しく読み込まれます。/something/page1 に移動してから /someOtherPage に移動すると、サーバーに接続していないようです。