Spring Boot 设置静态资源访问

问题描述

当使用spring Boot来架设服务系统时,有时候也需要用到前端页面,当然就不可或缺地需要访问其他一些静态资源,比如图片、css、js等文件。那么如何设置Spring Boot网站可以访问得到这些静态资源,以及静态资源如何布局?

解决方案

这里引用stackoverflow网站的问题截图:[http://stackoverflow.com/questions/27381781/java-spring-boot-how-to-map-my-my-app-root-to-index-html] 
 
以及config/WebConfig.Java的内容如下:

@Configuration
@EnableWebMvc
@ComponentScan
public class WebConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("/");
        }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

常见问题

官方的解说

最常见的就是官方给出的方案:http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-web-applications.html 
具体位置在26.1.4 Static Content 
但是经过检验 src/main/resources目录下的资源文件不能被直接访问到。图片说明如下: 

解释

其实官方解释没有提及一点,就是不能使用@EnableWebMvc,当然如果Spring Boot在classpath里看到有 spring webmvc 也会自动添加@EnableWebMvc (http://spring.io/guides/gs/rest-service/)

如果@EnableWebMvc了,那么就会自动覆盖了官方给出的/static/publicMETA-INF/resources/resources等存放静态资源的目录。而将静态资源定位于src/main/webapp。当需要重新定义好资源所在目录时,则需要主动添加上述的那个配置类,来Override addResourceHandlers方法。

时间: 2024-09-06 14:20:04

Spring Boot 设置静态资源访问的相关文章

spring 4.2.6 mvc 静态资源访问问题

问题描述 spring 4.2.6 mvc 静态资源访问问题 ![新进公司, 尝试自己重新拾起搭一个springmvc框架,可是一个静态资源访问问 题拦住了我两天,求大神帮忙: 图片说明](http://img.ask.csdn.net/upload/201605/20/1463737807_800158.png) 这是使用jar包 web.xml 配置: springmvc <context-param> <param-name>contextConfigLocation<

spring-使用SpringMVC 静态资源访问 报错ConversionFailedException

问题描述 使用SpringMVC 静态资源访问 报错ConversionFailedException 使用的spring 版本是 4.20 在springmvc配置 报错很奇怪.. 解决方案 该错误是因为: 1.内嵌jetty在运行时会锁定静态资源:因此在运行过程中不能删除静态资源: 2.问题的根源是启动了多个jetty实例,但是实际没有报端口冲突,可以检查任务管理器看是否有多个java/javaw进程在运行,如果是杀掉进程然后重试. 解决方案二: 配置这个没? <mvc:resources

【spring boot】7.静态资源和拦截器处理 以及继承WebMvcConfigurerAdapter类进行更多自定义配置

   开头是鸡蛋,后面全靠编!!! ========================================================  1.默认静态资源映射路径以及优先顺序   Spring Boot 默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration 中的配置各种属性. 建议大家使用Spring Boot的默认配置方式,提供的静态资源映射如下: classpath:/META-INF/resources classpath:/resources

REST风格的项目部署在tomcat上,静态资源如何访问

问题描述 服务器:tomcat6.0.29我的项目想用spring mvc框架,URL采用REST风格,但是这样一来,服务器上的静态资源访问不到了,麻烦高手给看一下.web.xml文件如下 <?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi=&

Spring Boot

一.Spring Boot介绍 Spring Boot是为了简化Spring应用的创建.运行.调试.部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置. 简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题-习惯大于约定. Spring Boot默认使用tomcat作为服务器,使用logback提供日志记录. Spring Boot提供了一系列的依赖包,所以需要构建工具的支持:maven 或 gradle. 二.一个简单的springboot po

Spring Data JPA方法定义规范【从零开始学Spring Boot】

视频&交流平台] à SpringBoot网易云课堂视频 http://study.163.com/course/introduction.htm?courseId=1004329008 à Spring Boot交流平台 http://412887952-qq-com.iteye.com/blog/2321532           事情的起因:有人问过我们这个这个问题:为什么我利用Spring data jpa写的方法没有按照我想要的情况进行执行呢?我记得当时只是告诉他你你先看看Spring

利用 Spring Boot 在 Docker 中运行 Hadoop

本文讲的是利用 Spring Boot 在 Docker 中运行 Hadoop,[编者的话]Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.本文介绍了如何利用Spring Boot在Docker中运行Hadoop任务. 简介 越来越多的应用都开始使用Hadoop框架.而开发者在使用过程中也遇到一些挑战,比如使用诸如Docker之类的容器开发和部署相关的技术栈开发的应用.我们将会在下面的例子中介绍如何克服这些挑战. 由于 S

静态资源-mvc:resources标签不起作用

问题描述 mvc:resources标签不起作用 只有根目录http://localhost:8080/agent__portal/这个根路径能访问的了,其他ctrl和静态资源都访问不了_ 解决方案 应该跟mvc:resources没关系: 先把ctrl搞得能访问再说,最后再看mvc:resources:把debug日志打开,看启动的时候你的ctrl创建成功没,路径是啥. 再有,排除跟路径不对的问题. 解决方案二: 错了,验证发现只有静态资源访问不了 mvc:resources标签怎么修改,删除

spring mvc 访问静态资源疑问

问题描述 前台页面需要访问静态页面,在没有配置<mvc:resourcesmapping="/css/**"location="/css/"/><mvc:resourcesmapping="/js/**"location="/js/"/>时,进行debug,程序启动后,前台还是能够访问的,虽然样式加载不出来,但是确实是可以访问的.但是当我为了要访问静态资源,所以加上上面的配置后,程序启动后,前台访问,反