# 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/】即可
```