SpringBoot web开发-09-静态资源、首页和图标定制

在人生的道路上,不管是潇洒走一回,或者是千山独行,皆须是自己想走的路,虽然,有的人并不是很快就能找到自己的方向和道路,不过,只要坚持到底,我相信,就一定可以找到自己的路,只要找到路,就不必怕路途遥远了。

导读:本篇文章讲解 SpringBoot web开发-09-静态资源、首页和图标定制,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

5.springboot web开发

  • jar包如何进行webapp开发

  • springboot自动装配

    • 创建应用,选择模块
    • 配置文件替换默认配置,注入的过程
    • 业务代码的编写过程,不用管理配置
  • springboot到底帮我们配置了什么?我们能不能进行修改?能修改哪些东西?能不能扩展

    • XxxxAutoConfiguraion…向容器中自动配置组件I
    • xxxProperties:自动配置类,装配配置文件中自定义的一些内容!
  • 要解决的问题:

    • 导入静态资源…
    • 首页
    • jsp或模板引擎Thymeleaf
    • 装配扩展SpringMVC
    • 视图解析器
    • 增删改查
    • 拦截器
    • 国际化!

5.1静态资源

  • 在 Web 应用中会涉及到大量的静态资源,例如 JS、CSS 和 HTML 等。我们知道,Spring MVC导入静态资源文件时,需要配置静态资源的映射;但在 SpringBoot中则不再需要进行此项配置,因为SpringBoot已经默认完成了这一工作。
  • Spring Boot 默认为我们提供了 3 种静态资源映射规则:
    • WebJars 映射
    • 默认资源映射
    • 静态首页(欢迎页)映射
  • WebMvcAutoConfiguration类
@Override
		public void addResourceHandlers(ResourceHandlerRegistry registry) {
			if (!this.resourceProperties.isAddMappings()) {
				logger.debug("Default resource handling disabled");
				return;
			}
			addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/");
			addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> {
				registration.addResourceLocations(this.resourceProperties.getStaticLocations());
				if (this.servletContext != null) {
					ServletContextResource resource = new ServletContextResource(this.servletContext, SERVLET_LOCATION);
					registration.addResourceLocations(resource);
				}
			});
		}
  • 为了让页面更加美观,让用户有更多更好的体验,Web 应用中通常会使用大量的 JS 和 CSS,例如 jQuery,Backbone.js 和 Bootstrap 等等。通常我们会将这些 Web 前端资源拷贝到 Java Web 项目的 webapp 相应目录下进行管理。但是 Spring Boot 项目是以 JAR 包的形式进行部署的,不存在 webapp 目录,那么 Web 前端资源该如何引入到 Spring Boot 项目中呢?
  • 方式1(使用少):webjars:可以完美的解决上面的问题,它可以 Jar 形式为 Web 项目提供资源文件。以mvn形式管理静态资源.官网在此网站上以mvn形式down的静态包都符合上诉路径,通过http://127.0.0.1:8080/webjars/jquery/3.6.0/dist/jquery.js可以访问静态资源

WebJars 可以将 Web 前端资源(JS,CSS 等)打成一个个的 Jar 包,然后将这些 Jar 包部署到 Maven 中央仓库中进行统一管理,当 Spring Boot 项目中需要引入 Web 前端资源时,只需要访问 WebJars 官网,找到所需资源的 pom 依赖,将其导入到项目中即可。

所有通过 WebJars 引入的前端资源都存放在当前项目类路径(classpath)下的“/META-INF/resources/webjars/” 目录中。

通过查看以上源码可知,WebJars 的映射路径为“/webjars/”,即所有访问“/webjars/”的请求,都会去“classpath:/META-INF/resources/webjars/”查找 WebJars 前端资源。

  • 方式2:/**,当访问项目中的任意资源(即“/ * *”)时,默认从这五个位置以下路径中查找资源文件(优先级依次降低):this.resourceProperties.getStaticLocations()、this.mvcProperties.getStaticPathPattern()
/**
{ "classpath:/META-INF/resources/",
				"classpath:/resources/", "classpath:/static/", "classpath:/public/" }

这些路径又被称为静态资源文件夹,它们的优先级顺序为:classpath:/META-INF/resources/ > classpath:/resources/ > classpath:/static/ > classpath:/public/ 。

  • 所以可以在resources目录下建resources、public、static文件都能识别,template文件和web-inf一样得通过后台controller访问跳转

可以http://127.0.0.1:8080/js/hello.js访问resources/static/js/hello.js文件

当我们请求某个静态资源(即以“.html”结尾的请求)时,Spring Boot 会先查找优先级高的文件夹,再查找优先级低的文件夹,直到找到指定的静态资源为止。

  • 优先级resources>static>public:public放都能访问的公共资源,(默认)static放静态资源,resources放上传的文件
  • 在配置文件中设置了自定义的资源路径,默认的资源路径就失效了。
spring.mvc.static-path-pattern=/zk
spring.web.resources.static-locations={ "classpath:/META-INF/resources/",
				"classpath:/resources/", "classpath:/static/", "classpath:/public/" }

5.2 首页和图标定制

  • 静态资源文件夹下的所有 index.html 被称为静态首页或者欢迎页,它们会被被 /** 映射,换句话说就是,当我们访问“/”或者“/index.html”时,都会跳转到静态首页(欢迎页)。
  • 将index.html放到resources/static的下的文件,项目启动后输入地址http://127.0.0.1:8080/即可自动访问到

注意,访问静态首页或欢迎页时,其查找顺序也遵循默认静态资源的查找顺序,即先查找优先级高的目录,在查找优先级低的目录,直到找到 index.html 为止。

  • 若将index.html放到template文件,得通过后台controller访问跳转,但需要模板引擎的支持。
  • 图标的设置(对旧版本2.1.7之前的),对于就版本来说可以将图片保存为favicon.ico放到resources/static下,然后在配置文件中关闭默认的图标,项目重启后清理浏览器缓存图标改变
#关闭默认图标
spring.mvc.favicon.enabled=false;
  • 在pom.xml中将springBoot版本号
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.2</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

下一篇:SpringBoot web开发-10-模板引擎thymeleaf介绍

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/123862.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!