diff --git a/.env.development b/.env.development index 52553ff9b0f7ba5be7d1b4954fe58fdc127e6a1a..1be2541d02402d37e308c3381f36ec9674346b97 100644 --- a/.env.development +++ b/.env.development @@ -6,6 +6,7 @@ VITE_APP_ENV = 'development' # 开发环境 VITE_APP_BASE_API = '/dev-api' +VITE_APP_WS_BASE_API = '/dev-api/resource/websocket' # 应用访问路径 例如使用前缀 /admin/ VITE_APP_CONTEXT_PATH = '/' diff --git a/.env.production b/.env.production index bf9e644407f1d025f6d23f32ecf5678d7aaee8ad..6add19193c738fe8d841c25ac985c9bfb7d25726 100644 --- a/.env.production +++ b/.env.production @@ -15,6 +15,7 @@ VITE_APP_SNAILJOB_ADMIN = '/snail-job' # 生产环境 VITE_APP_BASE_API = '/prod-api' +VITE_APP_WS_BASE_API = '/prod-api/resource/websocket' # 是否在打包时开启压缩,支持 gzip 和 brotli VITE_BUILD_COMPRESS = gzip diff --git a/src/layout/index.vue b/src/layout/index.vue index 29fb5ff56d844be923b18fb46fc7eebef2a5aad0..715334b520a17de6be80bdfe639b2a3924c9b678 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -68,7 +68,9 @@ onMounted(() => { onMounted(() => { let protocol = window.location.protocol === 'https:' ? 'wss://' : 'ws://'; - initWebSocket(protocol + window.location.host + import.meta.env.VITE_APP_BASE_API + '/resource/websocket'); + const base = import.meta.env.VITE_APP_WS_BASE_API; + const wsUrl = base.includes(`://`) ? base : `${protocol}${window.location.host}${base}`; + initWebSocket(wsUrl); }); const handleClickOutside = () => { diff --git a/vite.config.ts b/vite.config.ts index f8b1200d8c50a12d0ebada49a69aa2f6df3ca7c3..d5aede11241327e2f76c06783fd8eb2588dbe782 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -76,60 +76,7 @@ export default defineConfig(({ mode, command }: ConfigEnv): UserConfig => { 'tiny-svg', 'image-conversion', - 'element-plus/es/components/text/style/css', - 'element-plus/es/components/collapse-item/style/css', - 'element-plus/es/components/collapse/style/css', - 'element-plus/es/components/space/style/css', - 'element-plus/es/components/container/style/css', - 'element-plus/es/components/aside/style/css', - 'element-plus/es/components/main/style/css', - 'element-plus/es/components/header/style/css', - 'element-plus/es/components/button-group/style/css', - 'element-plus/es/components/radio-button/style/css', - 'element-plus/es/components/checkbox-group/style/css', - 'element-plus/es/components/form/style/css', - 'element-plus/es/components/form-item/style/css', - 'element-plus/es/components/button/style/css', - 'element-plus/es/components/input/style/css', - 'element-plus/es/components/input-number/style/css', - 'element-plus/es/components/switch/style/css', - 'element-plus/es/components/upload/style/css', - 'element-plus/es/components/menu/style/css', - 'element-plus/es/components/col/style/css', - 'element-plus/es/components/icon/style/css', - 'element-plus/es/components/row/style/css', - 'element-plus/es/components/tag/style/css', - 'element-plus/es/components/dialog/style/css', - 'element-plus/es/components/loading/style/css', - 'element-plus/es/components/radio/style/css', - 'element-plus/es/components/radio-group/style/css', - 'element-plus/es/components/popover/style/css', - 'element-plus/es/components/scrollbar/style/css', - 'element-plus/es/components/tooltip/style/css', - 'element-plus/es/components/dropdown/style/css', - 'element-plus/es/components/dropdown-menu/style/css', - 'element-plus/es/components/dropdown-item/style/css', - 'element-plus/es/components/sub-menu/style/css', - 'element-plus/es/components/menu-item/style/css', - 'element-plus/es/components/divider/style/css', - 'element-plus/es/components/card/style/css', - 'element-plus/es/components/link/style/css', - 'element-plus/es/components/breadcrumb/style/css', - 'element-plus/es/components/breadcrumb-item/style/css', - 'element-plus/es/components/table/style/css', - 'element-plus/es/components/tree-select/style/css', - 'element-plus/es/components/table-column/style/css', - 'element-plus/es/components/select/style/css', - 'element-plus/es/components/option/style/css', - 'element-plus/es/components/pagination/style/css', - 'element-plus/es/components/tree/style/css', - 'element-plus/es/components/alert/style/css', - 'element-plus/es/components/checkbox/style/css', - 'element-plus/es/components/date-picker/style/css', - 'element-plus/es/components/transfer/style/css', - 'element-plus/es/components/tabs/style/css', - 'element-plus/es/components/image/style/css', - 'element-plus/es/components/tab-pane/style/css' + 'element-plus/es/components/**/css' ] } };