Spring-Boot不使用Thymeleaf

时间:2016-10-16 22:49:50

标签: spring-boot thymeleaf

我一直试图让这个工作,但几个小时后没有运气。

我的结构是这样的:

 src
└───  main
    ├───  java
    └───  resources
        ├───  META-INF
        │   └───  resources
        │       └───  bootstrap
        │           ├───  css
        │           └───  js
        ├───  templates
        │   └─── index.html
        └─── application.properties

这是WebConfig类:

@Configuration
@EnableWebMvc
public class WebAppConfig extends WebMvcConfigurerAdapter {

    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**")
            .addResourceLocations("/resources/");
    }

}

如果我使用链接到网络资源,它可以工作:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"></link>

如果我试图包含静态资源,它就无法运行:

<link type="text/css" rel="stylesheet" href="../../../resources/bootstrap/css/bootstrap.min.css" 
    data-th-href="@{/resources/bootstrap/css/bootstrap.min.css}" />

非常感谢任何帮助。

谢谢

2 个答案:

答案 0 :(得分:5)

避免使用弹簧启动的webapp文件夹

  

如果您的应用程序是,请不要使用src/main/webapp目录   打包成一个罐子。虽然这个目录是一个通用标准,但它   只会与战争包装一起使用,它将被默默地忽略   如果你生成一个jar,大多数构建工具。

然后放置静态文件的位置?

  • Spring Boot在这些文件夹中提供静态文件(相对于/src/main/resources/):
  

默认情况下,Spring Boot将提供目录中的静态内容   名为/static(或/public/resources/META-INF/resources)。

我建议您将webapp个文件重新组织为/src/main/resources/static

其他答案

评论后编辑 - 静态文件的路径

访问静态文件时,静态文件夹(如上所列)是路径的根目录。

因此,要访问您的css文件:

    项目中的
  • 文件:META-INF/resources/bootstrap/css/bootstrap.min.css
  • url:http://localhost:8080/bootstrap/css/bootstrap.min.css
  • 链接标记:<link type="text/css" rel="stylesheet" href="bootstrap/css/bootstrap.min.css"/>
  • 链接标记:<link type="text/css" rel="stylesheet" data-th-href="@{bootstrap/css/bootstrap.min.css}" />

答案 1 :(得分:1)

问题已经解决。不幸的是,问题不是来自上述任何一个,而是来自映射到“/”的控制器。如果您遇到同样的问题,请确保没有任何映射到“/”的内容。现在可以通过URL访问所有资源。

我的新结构如下:

src
   main
       java
       resources
           static
               bootstrap
                  css
                  js
       templates
           index.html
       application.properties

这是WebConfig类:

@Configuration
@EnableWebMvc
public class WebAppConfig extends WebMvcConfigurerAdapter {

    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**")
            .addResourceLocations("/resources/");
    }

}

该链接包含在HTML中:

<link type="text/css" rel="stylesheet" href="../bootstrap/css/bootstrap.min.css" 
    data-th-href="@{/bootstrap/css/bootstrap.min.css}" />