通过Spring Boot与thymeleaf模板一起提供静态内容
我很难想象Spring Boot使用thymeleaf,但仍然提供静态内容。我的资源目录中有两个目录:“/static”和“/templates”。根据Spring引导文档,默认情况下thymeleaf应该在templates目录中找到thymeleaf模板。当我尝试使用模板时,我得到了404 来自我的控制器的相关代码:通过Spring Boot与thymeleaf模板一起提供静态内容,spring,thymeleaf,spring-boot,Spring,Thymeleaf,Spring Boot,我很难想象Spring Boot使用thymeleaf,但仍然提供静态内容。我的资源目录中有两个目录:“/static”和“/templates”。根据Spring引导文档,默认情况下thymeleaf应该在templates目录中找到thymeleaf模板。当我尝试使用模板时,我得到了404 来自我的控制器的相关代码: @RequestMapping("/") public ModelAndView index() { return new ModelAndView("index.ht
@RequestMapping("/")
public ModelAndView index() {
return new ModelAndView("index.html");
}
@RequestMapping(value = "/test")
public ModelAndView test() {
return new ModelAndView("test");
}
index.html位于resources/static中,test.html位于resources/templates中
html工作正常,但如果您尝试在浏览器中打开/测试,它会抛出404,表示找不到thymeleaf模板
我真的很感谢你的帮助。我被难住了。任何未通过ThymeleafViewResolver(您的/resources/static)的页面都需要删除
/**
* Configures a {@link ThymeleafViewResolver}
*
* @return the configured {@code ThymeleafViewResolver}
*/
@Bean
public ThymeleafViewResolver thymeleafViewResolver()
{
String[] excludedViews = new String[]{
"/resources/static/*"};
ThymeleafViewResolver resolver = new ThymeleafViewResolver();
resolver.setTemplateEngine(templateEngine());
resolver.setOrder(1);
/*
* This is how we get around Thymeleaf view resolvers throwing an error instead of returning
* of null and allowing the next view resolver in the {@see
* DispatcherServlet#resolveViewName(String, Map<String, Object>, Locale,
* HttpServletRequest)} to resolve the view.
*/
resolver.setExcludedViewNames(excludedViews);
return resolver;
}
/**
*配置{@link@eleafviewsolver}
*
*@返回已配置的{@code@eleafviewsolver}
*/
@豆子
公共thymeleafviewsolver thymeleafviewsolver()
{
字符串[]excludedViews=新字符串[]{
“/resources/static/*”};
ThymileAfViewResolver解析器=新的ThymileAfViewResolver();
resolver.setTemplateEngine(templateEngine());
解析程序设置顺序(1);
/*
*这就是我们如何绕过ELEAF视图解析器抛出错误而不是返回错误的方法
*允许{@see中的下一个视图解析器
*DispatcherServlet#resolveViewName(字符串、映射、区域设置、,
*HttpServletRequest)}来解析该视图。
*/
冲突解决程序设置ExcludedViewNames(excludedViews);
返回解析器;
}
您是否尝试只返回模板的字符串名称而不返回ModelAndview?
并按照?中的说明对您的ModelAttributes进行注释。请同时发布您的thymeleaf配置。您可以发布您的Spring引导配置吗?