2017-03-06 11 views
0

私は簡単な質問があります。春ブートアプリケーションでは、私は正常に動作し、コントローラを持っている:私はこのHTMLのHTML URLの表示が見つかりません

@GetMapping("/mycats/my") 
public String getCats(){ 
    return "cats.html"; 
} 
のようなアクションのURLを変更すると

@GetMapping("/mycats") 
public String getCats(){ 
    return "cats.html"; 
} 

cats.htmlはリソース/静的/

でHTMLファイルであります

春はもうhtmlファイルを見つけることができません。私は多くのディレクトリの組み合わせを試して、まだ成功していません。私はthymeleaf/jspを使用しません。なぜそれが起こっているのですか?

+0

Iゲストでルートディレクトリを見て春を伝えることができますjsp、jsfなど。あなたはajaxを介して通信することができます。ポストバック操作を使用しないでください –

+0

シングルページアプリケーションはポストバック操作を使用しません –

答えて

1

これは、コンテキストによるものです。 "mycats"を使用すると、静的ディレクトリのページが検索されます。しかし、 "mycats/my"を使用すると、静的/ myディレクトリのページが検索されます。このディレクトリは存在しないため、404エラーが発生します。

コントローラを少し変更することができます。 previosディレクトリで "../"を検索するようにコマンドすることはできますが、常に深いディレクトリに置かなければなりません。

@GetMapping("/mycats/my") 
public String getCats(){ 
    return "../cats.html"; 
} 

または任意のディレクトリから、あなたがcats.htmlを使用していて、使用していない場合は良い方法ではありません「/」

@GetMapping("/mycats/my") 
public String getCats(){ 
    return "/cats.html"; 
} 
+0

遅く返事を申し訳ありません。あなたが言うようなものです。私を混乱させたのは、両方のルートがthymeleafとjspで動作することです。 htmlは静的リソースなので、このように動作するのが理にかなっています。ありがとうございました! –

関連する問題