若依框架前端静态资源如何整合到后端访问

文章详细描述了如何将前端Vue应用的静态资源与后端SpringBoot应用整合部署的过程,包括修改环境变量、设置路由模式、打包前端、引入Thymeleaf模板引擎、配置静态资源处理和访问控制,以及创建控制器处理页面请求。最后,通过在后端添加静态资源并启动服务进行测试访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分离版本都是前端和后端单独部署的,但是有些特殊情况想把前端静态资源整合到后端。提供如下方案:

  1. 修改ruoyi-ui中的.env.production(二选一)

// 本机地址访问VUE_APP_BASE_API = '/'
 
// 任意地址访问VUE_APP_BASE_API = '//localhost:8080'

  1. 修改ruoyi-ui中的router/index.js,设置mode属性为hash

export default new Router({
  mode: 'hash',
  scrollBehavior: () => ({ y: 0 }),
  routes: constantRoutes
})

  1. 执行bin\build.bat打包前端静态资源文件。

  1. 修改后端resources中的application.yml,添加thymeleaf模板引擎配置

spring:
  # 模板引擎
  thymeleaf:
    mode: HTML
    encoding: utf-8
    cache: false

  1. 修改后端pom.xml,增加thymeleaf模板引擎依赖

<!-- spring-boot-thymeleaf -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

  1. 修改后端ResourcesConfig.java中的 addResourceHandlers,添加静态资源映射地址

/** 前端静态资源配置 */
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
  1. 修改后端SecurityConfig.java中的 configure,添加允许访问的地址。

.antMatchers(
        HttpMethod.GET,
        "/*.html",
        "/**/*.html",
        "/**/*.css",
        "/**/*.js",
        "/static/**",
        "/",
        "/index"
).permitAll()

8、后端新建访问控制处理IndexController.java设置对应访问页面。

package com.ruoyi.project.system.controller;
​
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
​
@Controller
public class IndexController
{
    // 系统首页
    @GetMapping(value = { "/", "/index", "/login" })
    public String index()
    {
        return "index";
    }
}

9、整合前端dist静态资源文件到后端

  • 后端resources下新建templates目录,复制静态页面index.html过来。

  • 复制静态文件staticresources目录下。

10、启动测试访问地址

打开浏览器,输入:http://localhost:8080 能正常访问和登录表示成功。

### 若依框架下不改动后端情况下修改前端 在若依框架中,如果希望不改动后端代码而仅对前端部分进行调整,可以通过以下方式实现: #### 1. 修改前端静态文件路径配置 确保前端资源能够被正确加载。通常,在 `application.yml` 或者 `application.properties` 文件中定义了静态资源的映射路径。例如: ```yaml spring: mvc: static-path-pattern: /static/** ``` 此设置会将 `/static/` 下的所有资源暴露给外部访问[^3]。 #### 2. 调整 Security 配置以支持新的前端资源 即使不改动核心逻辑,也需要确认安全策略允许新添加的前端资源被正常访问。可以在 `SecurityConfig.java` 中增加如下配置来扩展匹配规则: ```java @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers(HttpMethod.GET, "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/static/**", "/", "/index").permitAll(); } ``` 上述代码片段明确了哪些 URL 可匿名访问,从而保障新增加或者更改后的 HTML/CSS/JS 文件能顺利加载。 #### 3. 使用独立构建工具管理前端项目 为了保持前后端完全解耦合的状态,建议采用现代前端工程化手段单独维护 Vue.js (或其他技术栈) 的源码,并最终将其编译产物复制至 Spring Boot 应用内的指定目录(通常是 `src/main/resources/static/`)。具体操作流程括但不限于以下几个方面: - 利用 Webpack/Vite 等工具完成前端项目的打; - 将生成好的 dist 文件夹内容同步到 Java 工程对应的静态资源位置; - 如果需要动态注入环境变量,则可通过插件形式定制化处理生产模式下的 API 地址等问题[^1]。 #### 4. 测试并验证更新效果 最后一步非常重要——全面测试整个应用的功能性和兼容性,特别是针对跨域请求、Session 维护等方面可能出现的新情况作出相应调试优化。 ```bash mvn clean package -DskipTests=true java -jar target/ruoyi-admin.jar ``` 以上命令用于重新构建应用程序以及启动服务实例以便即时查看变更成果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值