web-dev-qa-db-ja.com

spring-bootで静的htmlコンテンツページを提供する方法

spring-bootを介して埋め込みTomcatを起動し、実行中のアプリケーションの一部として静的index.htmlページを提供したい。

ただし、以下は機能しません。

@SpringBootApplication
public class HMyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}


@RestController 
public class HomeContoller {
    @RequestMapping("/")
    public String index() {
        return "index";
    }
}

src/main/resources/static/index.html

結果:localhost:8080を呼び出すと、Wordの「インデックス」が表示されますが、HTMLページは表示されません。どうして?

24
membersound

私の過ち:@EnableWebMvcアノテーションを持つ追加のクラスがありました。これがスプリングブートの自動設定をなんとかして台無しにしました。削除して、index.htmlを返すようになりました。

16
membersound

私にとってこれはうまくいきましたが、より良い方法があると確信しています(.htmlなしなど)。

@RequestMapping("/")
public String index() {
    return "index.html";
}

ModelAndViewを使用して、スプリングブートで静的なHTMLコンテンツを提供できます。

@RequestMapping("/")
public ModelAndView home()
{
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("index");
    return modelAndView;
}

application.properties:-

spring.mvc.view.suffix = .html

HTMLファイル:-src/main/resources/static/index.html

0
Ankit Rawat