0

私が開発しているangular 2.0アプリケーションのバックエンドとしてsparkを使用しています。angle 2.0/sparkシングルページアプリケーションのクライアント側ルーティングを正しく設定するにはどうすればよいですか?

私は最初のindex.htmlのように、sparkを使用しています。

import spark.Spark.*; 

public class Browser { 

    public static void main(String [] args) { 
     staticFiles.location("/public"); 
     get("/hello/", (req, res) -> "Hello World"); 
    } 

} 

これは、今私はいくつかのクライアント側のルーティングを設定しようとしています、しかしindex.htmlを

の私の最初のサービングのために正常に動作しています。大部分は、this tutorialに続いていくつか小さな変化があります。今

import { NgModule } from '@angular/core'; 
import { RouterModule, Routes } from '@angular/router'; 
import { MetadataDisplayComponent } from './metadata-display.component'; 

const routes: Routes = [ 
    { path : '', redirectTo: '/metadata/', pathMatch: 'full'}, 
    { path : 'metadata/:path', component: MetadataDisplayComponent} 
]; 

@NgModule({ 
    imports: [RouterModule.forRoot(routes)], 
    exports: [RouterModule] 
}) 

export class AppRoutingModule{} 

、私は、ブラウザのURLバーをナビゲートする場合は、「ローカルホスト:8050」に、そしてその後のindex.htmlが提供され、クライアント側のコードは、リダイレクトされた後、私の「MetadataDisplayComponent」を表示します。このため、コンポーネントが正しくインポート/使用されていることがわかります。

ただし、ブラウザのURLバーに "metadata/foo"と入力すると、404エラーが表示されます。私は私のスパークバックエンドで

metadata/foo 

ルートを持っていないためであると考えています。しかし、私は以前のようにindex.htmlをロードしてから、適切なコンポーネントを切り替えるためにクライアント側のルーティングを呼び出すようにしたいと思います。

ブラウザのURLバーにURLを入力し、最初のindex.htmlのみを読み込み、そこからクライアント側のルーティングを引き継ぐようにアプリを設定するにはどうすればよいですか?

EDIT This article私の問題を十分に明確に表現しているようです。バックエンドへのすべてのリクエストを同じindex.htmlファイルにリダイレクトする方法が必要です。

答えて

0

私はfeature added in version 2.5.4 of Sparkのカスタム404と500のエラーページの恩恵を受けると思います。必要な場所にリダイレクトするページに戻るだけです。

関連する問題