2017-05-10 12 views
0

次の問題が発生しました。私は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コントローラと静的コントローラ間の違いを確認する必要があり

答えて

1

はあなたのコードを動作させるためにあなただけのこのようなStaticContentControllerインスタンス のためにと呼ばれる新しいコントローラを作成する必要がありますメイン/リソースは、あなたがあなたのサーバを起動し、ヒットした場合http://localhost:8080/indexが動作する

その後のindex.htmlをフォルダ「テンプレート」を作成し、追加

+0

しかし、index.htmlは、http:// localhost:8080/index.htmlで利用可能であり、 'static'では使用できません。 'static'フォルダは、静的コンテンツを置くためのSpringブートの下のデフォルトの場所でなければなりません。これはルートリソースとして利用できます。 – ali

+0

@ali次に、コントローラの値を "/"で変更して、getMapping( "/ index")をgetメソッドに追加できます。静的リソースとしてHTMLファイルを使用できるかどうかは不明ですが、静的イメージ、css、js、pdfなどがテンプレートには該当しません。しかし、あなたは試してみることができます – cralfaro

+0

その設定では、 'Circular view path [index]:現在のハンドラURL [/ index]に再度ディスパッチします.'これは私が期待するものです。 – ali

0

OK。私はこの問題を解決しました。私は@RestController@RestController(value="/test")と宣言しました。これはもちろん間違っています。それがあります

@RestController 
@RequestMapping("/test") 
public class ... 

私は忘れました。 @RequestMapping注釈。 headatdesk

関連する問題