# dmsc **Repository Path**: fsvip/dmsc ## Basic Information - **Project Name**: dmsc - **Description**: dmscpt项目的父项目,可以不用管。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-02-28 - **Last Updated**: 2025-02-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: dmsc ## README ## 平台简介 * 本仓库为RuoYi-Vue的单应用版本修改而来,基于RuoYi-Vue单应用v3.6.0 2021-07-12版本修改。 * 前端采用Vue、Element UI。 * 后端采用Spring Boot、Spring Security、EhCache & Jwt、MyBatisPlus、knife4j ruoyi-vue前后端分离项目实现一体化打包(前后端合并打包) > 简介: ruoyi-vue前后端分离项目实现一体化打包(前后端合并打包) ## 1.场景 - 现在要对ruoyi-vue前后端分离项目,进行一体化打包,即 将前后端项目打在一个jar里面 ## 2.后端改造 - 修改ruoyi-framework项目中的SecurityConfig.java类,配置静态资源访问权限 ```java @Override protected void configure(HttpSecurity httpSecurity) throws Exception { httpSecurity // CSRF禁用,因为不使用session .csrf().disable() // 认证失败处理类 .exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and() // 基于token,所以不需要session .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and() // 过滤请求 .authorizeRequests() // 对于登录login 注册register 验证码captchaImage 允许匿名访问 .antMatchers("/","/dmsc","/login" , "/register" , "/captchaImage").anonymous() .antMatchers( HttpMethod.GET, "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/**/*.gif", "/**/*.png", "/**/*.jpg", "/**/*.woff", "/**/*.ttf", "/*.ico" ).permitAll() .antMatchers("/profile/**").anonymous() .antMatchers("/common/download**").anonymous() .antMatchers("/common/download/resource**").anonymous() .antMatchers("/swagger-ui.html").anonymous() .antMatchers("/swagger-resources/**").anonymous() .antMatchers("/webjars/**").anonymous() .antMatchers("/*/api-docs").anonymous() .antMatchers("/druid/**").anonymous() .antMatchers("/static/**").anonymous() //放开测试接口方便用户测试 .antMatchers("/test/**").anonymous() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated() .and() .headers().frameOptions().disable(); httpSecurity.logout().logoutUrl("/logout").logoutSuccessHandler(logoutSuccessHandler); // 添加JWT filter httpSecurity.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class); // 添加CORS filter httpSecurity.addFilterBefore(corsFilter, JwtAuthenticationTokenFilter.class); httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class); } ``` ## 3.前端改造 - 3.1 修改 ruoyi-ui/src/router/index.js文件 ,将 mode: ‘history’ 改成 mode: ‘hash’ ```vue export default new Router({ mode: 'hash', // 去掉url中的# scrollBehavior: () => ({ y: 0 }), routes: constantRoutes }) ``` - 3.2 修改 ruoyi-ui/package.json文件,将原来的 “core-js”: “3.8.1” 改为 “core-js”: “^3.8.1”, ```vue "dependencies": { "core-js": "^3.8.1", ``` - 3.3 前端交给maven管理,引入[pom.xml] ```java 4.0.0 com.dmsc dmsc-ui 0.0.1 综合管理平台前端 jar dmsc-ui hnyufushan 82271092@qq.com UTF-8 maven-resources-plugin 3.1.0 copy-resources validate copy-resources ${basedir}/target/classes/static dist false ``` - 3.4 修改[.env.production]文件VUE_APP_BASE_API参数 ```vue # 页面标题 VUE_APP_TITLE = 代码生成管理系统 # 生产环境配置 ENV = 'production' # 若依管理系统/生产环境 # VUE_APP_BASE_API = '/prod-api' VUE_APP_BASE_API = '//localhost:8080' ``` ## 4.前后端集成方法 ```bash 1、重新编译项目 npm run build:prod 2、maven运行package、install把前端项目打成jar包 放入maven库 3、后端引入 com.dmsc dmsc-ui 0.0.1 4、启动后端项目访问【http://localhost:8080/】即可 ```