"generic"を登録した後@RequestMapping
リソースハンドラの動作が停止しました。まずSpring + ThymeleafリソースハンドラとRequestMappingが競合する
私はThymeleafで、このリソースの設定があります。
@Value("${ty-resource}")
private String resource;
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
super.addResourceHandlers(registry);
registry.addResourceHandler("/resources/**").addResourceLocations(resource);
}
は私のリソースは、プロジェクトの外にあるので、その後、私のクライアントは、(彼はそれを求め)彼の意志でそれのリソースを更新することができます。
すべてがOKだった、私のリソースは${user.dir}/../webapp/resources/
から配信beeingてたそれから私は@RequestMapping(value="/{department}/{category}/{subCategory}")
を登録。
その後、私のリソースはリソースハンドラからではなく、このリクエストマッピングによって応答され始めました。
私はこの問題を解決するために何をすべきか分かりません。
私はこれについて考えた:
@Value("${ty-resource}")
private String resourcesPath;
@RequestMapping('/resources')
public ModelAndView resources(@RequestParam("r") String resource) {
return new ModelAndView("redirect:"+resourcesPath+resource);
}
しかし、私は、これが最良の答えかもしれないと思います。
@RequestMapping(value="/{department}/{category}/{subCategory}")
が@RequestMapping('/resources')
より前に登録されているので、私のリソースは@RequestMapping(value="/{department}/{category}/{subCategory}")
で応答します。
- 編集 -
例:
<script type="text/javascript" data-th-src="@{/resources/js/components.js}"></script>
このリソース要求は、リソースハンドラではない答えています。私はThymeleaf
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
を使用してリソースをロードし、
<script th:src="@{/resources/js/validation.js}"></script>
そうであるようにリソースをロードするためにHTMLで絶対パスを使用していますか 春が@RequestMapping(value="/{department}/{category}/{subCategory}")
私は質問を完了しました。 – Giovane