欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringBoot基于Web的开发(三)

程序员文章站 2022-04-28 09:54:53
...

前言

在了解了SpringBoot中如何使用Web开发以及其背后的原理后,我们来做一个总结----关于SpringBoot中我们该如何设置静态资源的路径才能让框架调用到。

1.外部导入的 jquery,js文件等

在没使用SpringBoot开发前我们习惯吧 jquery,js等包放到 webapp目录下后,使用import语句进行使用。而我们的SpringBoot框架并没有提供该目录。一个boot开发的web项目的目录如下:
SpringBoot基于Web的开发(三)
在官方文档中,boot提倡我们使用webjars的形式使用这些静态资源文件(webjars就是以jar包的形式导入这些文件,方便管理和操作)我们以jquery为例:(在pom.xml文件上)

<!--引入jquery-webjar-->
 <dependency>
     <groupId>org.webjars</groupId>
     <artifactId>jquery</artifactId>
     <version>3.3.1</version>
 </dependency>

这时我们发现依赖包下会有
SpringBoot基于Web的开发(三)
这时我们可以通过 localhost:8080/webjars/jquery/3.3.1/jquery.js 对该文件进行访问
SpringBoot基于Web的开发(三)

2.访问自己写的html,css,js等文件

上面的是导入一些官方的包,可以说是静态资源文件的一种特殊情况,那我们自己写的静态资源文件应该放到哪呢?
也就是所谓的(/**)
源码中说明了,如果我们访问了http://localhost:8080/项目的任何路径
那么它会去项目中的这些路径进行寻找

"classpath:/META-INF/resources/",  // resources/META-INF/resources/
"classpath:/resources/",     // resources/resources/
"classpath:/static/", 		//  resources/static
"classpath:/public/"		//  resources/public
"/"							//  根目录	

SpringBoot基于Web的开发(三)
也就是我们只要把静态资源文件放到上面的目录下便可以进行相关访问。
举个例子,比如我们要访问 resources/public/index.html
SpringBoot基于Web的开发(三)
SpringBoot基于Web的开发(三)
我们只需访问 http://localhost:8080/index.html
SpringBoot基于Web的开发(三)

3.欢迎页的隐射

上面所说的欢迎页也就是我们在静态资源文件下写的所有index.html页面都会被 /** 映射
静态资源文件为:
SpringBoot基于Web的开发(三)
例如:我们还是要访问 上面说的 resources/public/index.html
SpringBoot基于Web的开发(三)我们可以直接通过 http://localhost:8080/ 进行访问
SpringBoot基于Web的开发(三)
通俗来说,我们直接访问 http://localhost:8080/ 而没有其他文件目录的话,他会默认去所有静态资源文件夹下找 index.html。

4. 图标文件的映射

我们所访问的图标可以放在 静态资源的目录下,并以 favicon.ico命名,那么浏览时即可访问到。
SpringBoot基于Web的开发(三)
比如我们上图放了一个图标,那我们在访问我们的静态资源文件时,图标都会是它。
SpringBoot基于Web的开发(三)
如上图 标红的地方所示。

5. 自定义静态资源的映射路径

在配置文件application.properties下(配置我们自定义的路径)

# 这里可以定义自己静态资源文件夹所放的路径
spring.resources.static-locations= classpath:/hello/, classpath:/gs/

通过上面的配置,我们只需要把静态资源文件(html,css,js等)放在 resources/hello/, resources/gs下就可以了
(补充说明一下classpath不仅有resources,还有java,不过我们习惯把静态资源丢在resources下)

小结

如果对SpringBoot基于Web开发相关的源码感兴趣的可以参照
SpringBoot基于Web的开发(一)
SpringBoot基于Web的开发(二)

相关标签: Spring Boot