From cd7cb3d516697616c5e476c230848b3b1f9124e4 Mon Sep 17 00:00:00 2001 From: Baoqi Date: Thu, 18 Jul 2019 13:54:26 +0800 Subject: [PATCH] make escheduler-ui works in combined server --- .../cn/escheduler/api/configuration/AppConfiguration.java | 8 +++++++- escheduler-ui/build/config.js | 6 +++++- escheduler-ui/package.json | 2 +- escheduler-ui/src/js/conf/home/store/user/actions.js | 2 +- escheduler-ui/src/js/conf/login/App.vue | 4 ++-- escheduler-ui/src/js/module/io/index.js | 2 +- escheduler-ui/src/view/common/meta.inc | 8 ++++---- escheduler-ui/src/view/common/outro.inc | 2 +- 8 files changed, 22 insertions(+), 12 deletions(-) diff --git a/escheduler-api/src/main/java/cn/escheduler/api/configuration/AppConfiguration.java b/escheduler-api/src/main/java/cn/escheduler/api/configuration/AppConfiguration.java index 7010a9bcd2..de0331cc00 100644 --- a/escheduler-api/src/main/java/cn/escheduler/api/configuration/AppConfiguration.java +++ b/escheduler-api/src/main/java/cn/escheduler/api/configuration/AppConfiguration.java @@ -75,7 +75,7 @@ public class AppConfiguration implements WebMvcConfigurer { //i18n registry.addInterceptor(localeChangeInterceptor()); - registry.addInterceptor(loginInterceptor()).addPathPatterns(LOGIN_INTERCEPTOR_PATH_PATTERN).excludePathPatterns(LOGIN_PATH_PATTERN,"/swagger-resources/**", "/webjars/**", "/v2/**", "/doc.html", "*.html"); + registry.addInterceptor(loginInterceptor()).addPathPatterns(LOGIN_INTERCEPTOR_PATH_PATTERN).excludePathPatterns(LOGIN_PATH_PATTERN,"/swagger-resources/**", "/webjars/**", "/v2/**", "/doc.html", "*.html", "/ui/**"); } @@ -87,6 +87,12 @@ public class AppConfiguration implements WebMvcConfigurer { registry.addResourceHandler("/ui/**").addResourceLocations("file:ui/"); } + @Override + public void addViewControllers(ViewControllerRegistry registry) { + registry.addViewController("/ui/").setViewName("forward:/ui/index.html"); + registry.addViewController("/").setViewName("forward:/ui/index.html"); + } + @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping(PATH_PATTERN).allowedOrigins("*").allowedMethods("*"); diff --git a/escheduler-ui/build/config.js b/escheduler-ui/build/config.js index 7241671262..f0c555c773 100644 --- a/escheduler-ui/build/config.js +++ b/escheduler-ui/build/config.js @@ -189,11 +189,15 @@ const baseConfig = { }, plugins: [ new webpack.ProvidePlugin({ vue: 'Vue', _: 'lodash' }), + new webpack.DefinePlugin({ + PUBLIC_PATH: JSON.stringify(process.env.PUBLIC_PATH ? process.env.PUBLIC_PATH : '') + }), new HtmlWebpackExtPlugin({ cache: true, delimiter: '$', locals: { - NODE_ENV:isProduction + NODE_ENV:isProduction, + PUBLIC_PATH: process.env.PUBLIC_PATH ? process.env.PUBLIC_PATH : '' } }), ...pages diff --git a/escheduler-ui/package.json b/escheduler-ui/package.json index a824c2c5d4..acfa498a54 100644 --- a/escheduler-ui/package.json +++ b/escheduler-ui/package.json @@ -11,7 +11,7 @@ "lint:fix": "standard \"**/*.{js,vue}\" --fix", "start": "npm run dev", "combo": "node ./build/combo.js", - "build:combined": "npm run clean && cross-env NODE_ENV=production webpack --config ./build/webpack.config.combined.js" + "build:combined": "npm run clean && cross-env NODE_ENV=production PUBLIC_PATH=/escheduler/ui webpack --config ./build/webpack.config.combined.js" }, "dependencies": { "autoprefixer": "^9.1.0", diff --git a/escheduler-ui/src/js/conf/home/store/user/actions.js b/escheduler-ui/src/js/conf/home/store/user/actions.js index 0bc12c33cd..951d9a0814 100644 --- a/escheduler-ui/src/js/conf/home/store/user/actions.js +++ b/escheduler-ui/src/js/conf/home/store/user/actions.js @@ -37,7 +37,7 @@ export default { signOut () { io.post(`signOut`, res => { setTimeout(() => { - window.location.href = '/view/login/index.html' + window.location.href = `${PUBLIC_PATH}/view/login/index.html` }, 100) }).catch(e => { console.log(e) diff --git a/escheduler-ui/src/js/conf/login/App.vue b/escheduler-ui/src/js/conf/login/App.vue index 66ba574eb5..bac32e404d 100644 --- a/escheduler-ui/src/js/conf/login/App.vue +++ b/escheduler-ui/src/js/conf/login/App.vue @@ -69,9 +69,9 @@ setTimeout(() => { this.spinnerLoading = false if (this.userName === 'admin') { - window.location.href = '/#/security/tenant' + window.location.href = `${PUBLIC_PATH}/#/security/tenant` } else { - window.location.href = '/#/home' + window.location.href = `${PUBLIC_PATH}/#/home` } }, 1000) }).catch(e => { diff --git a/escheduler-ui/src/js/module/io/index.js b/escheduler-ui/src/js/module/io/index.js index 5e8a3b18ec..f9d56f1458 100644 --- a/escheduler-ui/src/js/module/io/index.js +++ b/escheduler-ui/src/js/module/io/index.js @@ -44,7 +44,7 @@ io.config.timeout = 0 io.config.maxContentLength = 200000 io.config.validateStatus = function (status) { if (status === 401 || status === 504) { - window.location.href = '/view/login/index.html' + window.location.href = `${PUBLIC_PATH}/view/login/index.html` return } return status diff --git a/escheduler-ui/src/view/common/meta.inc b/escheduler-ui/src/view/common/meta.inc index fc307dd487..1f0f0afd63 100644 --- a/escheduler-ui/src/view/common/meta.inc +++ b/escheduler-ui/src/view/common/meta.inc @@ -11,12 +11,12 @@ - - - + + + +