Spring Boot:向Web应用程序添加静态内容

时间:2016-10-19 22:54:50

标签: css spring jsp spring-mvc spring-boot

我正在使用Spring Boot,我想知道我们究竟是如何在JSP文件中提到静态内容的路径的? 我尝试在 src / main / resources / static / css 中创建它们,但它无法正常工作,在我的JSP中我通过使用它来调用它们:

<link href="<c:url value="/css/bootstrap.min.css" />" rel="stylesheet" type="text/css">

我的SpringBoot类中没有特殊配置只需调用 SpringApplication.run(...)

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您必须具有扩展WebMvcAutoConfigurationAdapter的配置,它具有自动扫描某些默认位置并将其添加到类路径的注册表实现

  • / META-INF /资源/
  • /资源/
  • /静态/
  • /公共/

添加,

@Configuration
@EnableWebMvc
@ComponentScan
public class ServerConfiguration extends WebMvcAutoConfiguration{
}   

答案 1 :(得分:0)

使用springboot 1.5.6.RELEASE我的文件夹结构看起来像

~/repos/static-content-example/src > tree
.
├── main
│   ├── java
│   │   └── com
│   │       └── example
│   │           └── demo
│   │               ├── DemoApplication.java
│   │               └── MvcConfig.java
│   └── resources
│       ├── application.properties
│       ├── public
│       │   └── test.html
│       └── templates
└── test
    └── java
        └── com
            └── example
                └── demo
                    └── DemoApplicationTests.java

当我启动服务器时,我可以浏览

  1. http://localhost:8080/test.html
  2. http://localhost:8080/public/test.html
  3. 默认情况下,您可以在上下文根目录(上面的#1)访问“public”文件夹中的任何内容。 MvcConfig.java允许#2。我总是设置该别名,因此我可以忽略任何以/public开头的URL的安全性。为了在没有 MvcConfig设置的情况下执行,您必须将名为public的文件夹放在公共文件夹中,这只会令人困惑。

    我不知道为什么春天不会默认这样做....似乎它会清除很多混乱......