次の問題が発生しました。私はSpring Bootを使ってREST APIとJavascriptを介してそのAPIにアクセスするいくつかの静的Webページを提供するプロジェクトを持っていたいと思います。静的なコンテンツを提供するにはstatic
ディレクトリ(src/main/resources
)(またはクラスパス上の他の場所)に置くことで可能になります。しかし、残念ながらそれは動作しません。スプリングブートコントローラが静的コンテンツをマスクします
Gitlabで利用可能な問題を示すための最小限の例を作成しました。この例は、Spring Bootの基本的なプロジェクトの例です。静的なWebコンテンツの提供方法については、少し追加しています。
私がプロジェクトを生成した直後、正常に動作しました。しかし、私がde.cyface.controller.TestController
を追加するとすぐに私は静的コンテンツindex.html
にアクセスできなくなりました。 TestControllerは単にそれをマスクします。
私の質問は、Controllerと静的ページが正しく連携するためのSpring Bootプロジェクトをどのように設定するのですか?解決策はおそらく非常に簡単で、私は単にいくつかの重要な事実を見逃していますが、私は本当にここで立ち往生しています。 。/ srcの内側その後
@Controller
public class StaticContentController {
@RequestMapping(value="/index", method=RequestMethod.GET)
public String get() {
return "index";
}
}
::(あなたはRESTコントローラと静的コントローラ間の違いを確認する必要があり
しかし、index.htmlは、http:// localhost:8080/index.htmlで利用可能であり、 'static'では使用できません。 'static'フォルダは、静的コンテンツを置くためのSpringブートの下のデフォルトの場所でなければなりません。これはルートリソースとして利用できます。 – ali
@ali次に、コントローラの値を "/"で変更して、getMapping( "/ index")をgetメソッドに追加できます。静的リソースとしてHTMLファイルを使用できるかどうかは不明ですが、静的イメージ、css、js、pdfなどがテンプレートには該当しません。しかし、あなたは試してみることができます – cralfaro
その設定では、 'Circular view path [index]:現在のハンドラURL [/ index]に再度ディスパッチします.'これは私が期待するものです。 – ali