SpringBoot打包并部署到Tomcat并解决静态文件无法导入的问题

SpringBoot打包并部署到Tomcat

约定大于配置,SpringBoot开发起来非常迅速,而打包也非常简单,只需要进行少许配置即可

1. 修改入口类

将入口类继承SpringBootServletInitializer类,然后重写configure方法

@SpringBootApplication
public class MlpmisqaWebIhzsrCnApplication extends SpringBootServletInitializer {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(MlpmisqaWebIhzsrCnApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    
    
        return builder.sources(MlpmisqaWebIhzsrCnApplication.class);
    }
}

2.修改.pom文件

打包成war包

<packaging>war</packaging>

添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

3.打包

在 IDEA右侧maven Projects小窗口中,先执行clean命令,再执行install命令。
在这里插入图片描述

4.部署到Tomcat

将生成的war包复制到webapps目录下,包名即使项目名。然后在bin目录下开启即可访问。
注:如果出现css,js等静态文件无法加载的情况,需添加上下文。我这里简单介绍SpringBoot+thymeleaf项目的解决方案。

4.1.设置静态资源路径

在实现WebMvcConfigurer的配置类中重写addResourceHandlers方法。

/**
     * 设置静态资源路径
     * @author fang Ruichuan
     * @date 2021/10/13 15:43
     * @param registry 存储用于通过 SpringMVC 服务静态资源(例如图像,css文件等)的资源处理程序的注册
      */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
    
    
        registry.addResourceHandler("/static/**")
                .addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX + "/static/");
    }

4.2.css,js等文件的导入方式

注意要以 **/static/**开头

<link rel="stylesheet" th:href="@{https://www.layuicdn.com/layui/css/layui.css}">
<link rel="stylesheet" th:href="@{/static/css/main.css}">
<script th:src="@{https://www.layuicdn.com/layui/layui.js}"></script>

Guess you like

Origin blog.csdn.net/qq_42582773/article/details/120780782