2016-08-17 9 views
0

私は春のブートWebアプリケーションを作成したいと思います。スプリングブートマッピング静的html

私は2つの静的なhtmlファイル:one.html、two.htmlを持っています。

私はテンプレートエンジン(Thymeleaf)を使用せずに

localhost:8080/one 
localhost:8080/two 

を次のようにそれらをマッピングしたいです。

どうすればよいですか?私はそれを行うために多くの方法を試みましたが、404エラーまたは500エラーがあります(循環ビューパス[one.html]:現在のハンドラURLに戻す)。

OneController.javaは次のとおりです。

@Controller 
public class OneController { 
    @RequestMapping("/one") 
    public String one() { 
     return "redirect:/static/one.html"; 
    } 
} 

答えて

4

:あなたはこれを使用することができますリダイレクト追加のブラウザを気にしない場合は

@Controller 
public class OneController { 
    @RequestMapping("/one") 
    public String one() { 
     return "static/one.html"; 
    } 
} 

プロジェクト構造は

enter image description here

+0

うわー、あなたは素晴らしいです、それは動作します。ありがとうございました! – megasoch

+0

これを解決するための最良の方法です –

1

ですWebMvcConfigを更新し、UrlBasedViewResolを追加してくださいverおよび/静的リソースハンドラ。私のWebConfigクラスは次のようになります。

@Configuration 
@EnableWebMvc 
public class WebConfig extends WebMvcConfigurerAdapter { 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/"); 
     super.addResourceHandlers(registry); 
    } 

    @Bean 
    public ViewResolver viewResolver() { 
     UrlBasedViewResolver viewResolver = new UrlBasedViewResolver(); 
     viewResolver.setViewClass(InternalResourceView.class); 
     return viewResolver; 
    } 

} 

私はそれを確認して動作しているようです。

Maciejの答えはブラウザのリダイレクトに基づいています。私のソリューションは、ブラウザーとのやり取りなしに静的を返します

+0

ありがとうございます! – megasoch

関連する問題