From d1d461b4236e5c00d306d027b4ea2ec79d336ba5 Mon Sep 17 00:00:00 2001 From: xiaojie <550345579@qq.com> Date: Fri, 22 May 2026 14:03:36 +0800 Subject: [PATCH 1/2] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=94=B9=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E6=89=93=E5=8C=85=E9=85=8D=E7=BD=AE=EF=BC=8C=E6=89=80?= =?UTF-8?q?=E6=9C=89=E9=9D=99=E6=80=81=E6=96=87=E4=BB=B6=E6=89=93=E5=8C=85?= =?UTF-8?q?=E5=88=B0pc=E6=96=87=E4=BB=B6=E5=A4=B9=E4=B8=8B=EF=BC=88?= =?UTF-8?q?=E6=96=B9=E4=BE=BF=E4=B8=8E=E5=85=B6=E4=BB=96=E5=89=8D=E5=8F=B0?= =?UTF-8?q?=E6=89=93=E5=8C=85=E5=90=8E=E7=9A=84=E6=96=87=E4=BB=B6=E5=8C=BA?= =?UTF-8?q?=E5=88=86=E5=A6=82=E5=90=8E=E7=BB=AD=E5=8F=AF=E8=83=BD=E4=BC=9A?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E7=A7=BB=E5=8A=A8=E7=AB=AF=EF=BC=89=202?= =?UTF-8?q?=E3=80=81router=E7=94=9F=E4=BA=A7=E7=8E=AF=E5=A2=83=E5=B8=A6?= =?UTF-8?q?=E4=B8=8Apv=E5=89=8D=E7=BC=80=EF=BC=8C=E6=96=B9=E4=BE=BF?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E7=9B=B4=E6=8E=A5=E5=AE=9A=E4=BD=8D=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E9=9D=99=E6=80=81=E6=96=87=E4=BB=B6=EF=BC=88=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E7=8E=AF=E5=A2=83=E4=B8=8D=E5=8F=97=E5=BD=B1=E5=93=8D?= =?UTF-8?q?=EF=BC=89=203=E3=80=81=E4=B8=BB=E8=A6=81=E7=94=A8=E4=BA=8E?= =?UTF-8?q?=E6=96=B9=E4=BE=BF=E5=8F=91=E7=89=88=EF=BC=8C=E5=B0=86=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E6=89=93=E5=8C=85=E5=90=8E=E7=9A=84=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BD=9C=E4=B8=BA=E5=90=8E=E7=AB=AF=E9=A1=B5=E9=9D=A2=E6=A8=A1?= =?UTF-8?q?=E7=89=88=E4=B8=80=E5=90=8C=E6=89=93=E5=8C=85=E5=88=B0jar?= =?UTF-8?q?=E4=B8=AD=E8=BF=9B=E8=A1=8C=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.production | 1 + .gitignore | 4 +- public/{ => pc}/favicon.ico | Bin public/{ => pc}/favicon.svg | 0 public/{ => pc}/fi/archive.tsx | 0 public/{ => pc}/fi/audio.tsx | 0 public/{ => pc}/fi/code.tsx | 0 public/{ => pc}/fi/database.tsx | 0 public/{ => pc}/fi/default.tsx | 0 public/{ => pc}/fi/document.tsx | 0 public/{ => pc}/fi/excel.tsx | 0 public/{ => pc}/fi/folder.tsx | 0 public/{ => pc}/fi/font.tsx | 0 public/{ => pc}/fi/images.tsx | 0 public/{ => pc}/fi/link.tsx | 0 public/{ => pc}/fi/log.tsx | 0 public/{ => pc}/fi/pdf.tsx | 0 public/{ => pc}/fi/ppt.tsx | 0 public/{ => pc}/fi/text.tsx | 0 public/{ => pc}/fi/video.tsx | 0 public/{ => pc}/logo.svg | 0 public/{ => pc}/svg/gitee.svg | 0 public/{ => pc}/svg/github.svg | 0 public/{ => pc}/svg/wechat.svg | 0 src/components/file-icon.tsx | 32 +++--- src/pages/files/components/MoveModal.tsx | 2 +- src/router/index.tsx | 125 ++++++++++++----------- vite.config.ts | 4 + 28 files changed, 90 insertions(+), 78 deletions(-) rename public/{ => pc}/favicon.ico (100%) rename public/{ => pc}/favicon.svg (100%) rename public/{ => pc}/fi/archive.tsx (100%) rename public/{ => pc}/fi/audio.tsx (100%) rename public/{ => pc}/fi/code.tsx (100%) rename public/{ => pc}/fi/database.tsx (100%) rename public/{ => pc}/fi/default.tsx (100%) rename public/{ => pc}/fi/document.tsx (100%) rename public/{ => pc}/fi/excel.tsx (100%) rename public/{ => pc}/fi/folder.tsx (100%) rename public/{ => pc}/fi/font.tsx (100%) rename public/{ => pc}/fi/images.tsx (100%) rename public/{ => pc}/fi/link.tsx (100%) rename public/{ => pc}/fi/log.tsx (100%) rename public/{ => pc}/fi/pdf.tsx (100%) rename public/{ => pc}/fi/ppt.tsx (100%) rename public/{ => pc}/fi/text.tsx (100%) rename public/{ => pc}/fi/video.tsx (100%) rename public/{ => pc}/logo.svg (100%) rename public/{ => pc}/svg/gitee.svg (100%) rename public/{ => pc}/svg/github.svg (100%) rename public/{ => pc}/svg/wechat.svg (100%) diff --git a/.env.production b/.env.production index 2d1bf5f..4e84ef3 100644 --- a/.env.production +++ b/.env.production @@ -1 +1,2 @@ +VITE_BASE_URL='pv' VITE_API_BASE_URL= \ No newline at end of file diff --git a/.gitignore b/.gitignore index f142c30..ae9e202 100644 --- a/.gitignore +++ b/.gitignore @@ -27,4 +27,6 @@ dist-ssr .env.local .env.*.local -.cursor \ No newline at end of file +.cursor +/package-lock.json +/.vscode diff --git a/public/favicon.ico b/public/pc/favicon.ico similarity index 100% rename from public/favicon.ico rename to public/pc/favicon.ico diff --git a/public/favicon.svg b/public/pc/favicon.svg similarity index 100% rename from public/favicon.svg rename to public/pc/favicon.svg diff --git a/public/fi/archive.tsx b/public/pc/fi/archive.tsx similarity index 100% rename from public/fi/archive.tsx rename to public/pc/fi/archive.tsx diff --git a/public/fi/audio.tsx b/public/pc/fi/audio.tsx similarity index 100% rename from public/fi/audio.tsx rename to public/pc/fi/audio.tsx diff --git a/public/fi/code.tsx b/public/pc/fi/code.tsx similarity index 100% rename from public/fi/code.tsx rename to public/pc/fi/code.tsx diff --git a/public/fi/database.tsx b/public/pc/fi/database.tsx similarity index 100% rename from public/fi/database.tsx rename to public/pc/fi/database.tsx diff --git a/public/fi/default.tsx b/public/pc/fi/default.tsx similarity index 100% rename from public/fi/default.tsx rename to public/pc/fi/default.tsx diff --git a/public/fi/document.tsx b/public/pc/fi/document.tsx similarity index 100% rename from public/fi/document.tsx rename to public/pc/fi/document.tsx diff --git a/public/fi/excel.tsx b/public/pc/fi/excel.tsx similarity index 100% rename from public/fi/excel.tsx rename to public/pc/fi/excel.tsx diff --git a/public/fi/folder.tsx b/public/pc/fi/folder.tsx similarity index 100% rename from public/fi/folder.tsx rename to public/pc/fi/folder.tsx diff --git a/public/fi/font.tsx b/public/pc/fi/font.tsx similarity index 100% rename from public/fi/font.tsx rename to public/pc/fi/font.tsx diff --git a/public/fi/images.tsx b/public/pc/fi/images.tsx similarity index 100% rename from public/fi/images.tsx rename to public/pc/fi/images.tsx diff --git a/public/fi/link.tsx b/public/pc/fi/link.tsx similarity index 100% rename from public/fi/link.tsx rename to public/pc/fi/link.tsx diff --git a/public/fi/log.tsx b/public/pc/fi/log.tsx similarity index 100% rename from public/fi/log.tsx rename to public/pc/fi/log.tsx diff --git a/public/fi/pdf.tsx b/public/pc/fi/pdf.tsx similarity index 100% rename from public/fi/pdf.tsx rename to public/pc/fi/pdf.tsx diff --git a/public/fi/ppt.tsx b/public/pc/fi/ppt.tsx similarity index 100% rename from public/fi/ppt.tsx rename to public/pc/fi/ppt.tsx diff --git a/public/fi/text.tsx b/public/pc/fi/text.tsx similarity index 100% rename from public/fi/text.tsx rename to public/pc/fi/text.tsx diff --git a/public/fi/video.tsx b/public/pc/fi/video.tsx similarity index 100% rename from public/fi/video.tsx rename to public/pc/fi/video.tsx diff --git a/public/logo.svg b/public/pc/logo.svg similarity index 100% rename from public/logo.svg rename to public/pc/logo.svg diff --git a/public/svg/gitee.svg b/public/pc/svg/gitee.svg similarity index 100% rename from public/svg/gitee.svg rename to public/pc/svg/gitee.svg diff --git a/public/svg/github.svg b/public/pc/svg/github.svg similarity index 100% rename from public/svg/github.svg rename to public/pc/svg/github.svg diff --git a/public/svg/wechat.svg b/public/pc/svg/wechat.svg similarity index 100% rename from public/svg/wechat.svg rename to public/pc/svg/wechat.svg diff --git a/src/components/file-icon.tsx b/src/components/file-icon.tsx index e1523ed..b5df2d6 100644 --- a/src/components/file-icon.tsx +++ b/src/components/file-icon.tsx @@ -1,19 +1,19 @@ -import ArchiveIcon from '../../public/fi/archive' -import AudioIcon from '../../public/fi/audio' -import CodeIcon from '../../public/fi/code' -import DatabaseIcon from '../../public/fi/database' -import DefaultIcon from '../../public/fi/default' -import DocumentIcon from '../../public/fi/document' -import ExcelIcon from '../../public/fi/excel' -import FolderIcon from '../../public/fi/folder' -import FontIcon from '../../public/fi/font' -import ImageIcon from '../../public/fi/images' -import LinkIcon from '../../public/fi/link' -import LogIcon from '../../public/fi/log' -import PdfIcon from '../../public/fi/pdf' -import PptIcon from '../../public/fi/ppt' -import TextIcon from '../../public/fi/text' -import VideoIcon from '../../public/fi/video' +import ArchiveIcon from '../../public/pc/fi/archive' +import AudioIcon from '../../public/pc/fi/audio' +import CodeIcon from '../../public/pc/fi/code' +import DatabaseIcon from '../../public/pc/fi/database' +import DefaultIcon from '../../public/pc/fi/default' +import DocumentIcon from '../../public/pc/fi/document' +import ExcelIcon from '../../public/pc/fi/excel' +import FolderIcon from '../../public/pc/fi/folder' +import FontIcon from '../../public/pc/fi/font' +import ImageIcon from '../../public/pc/fi/images' +import LinkIcon from '../../public/pc/fi/link' +import LogIcon from '../../public/pc/fi/log' +import PdfIcon from '../../public/pc/fi/pdf' +import PptIcon from '../../public/pc/fi/ppt' +import TextIcon from '../../public/pc/fi/text' +import VideoIcon from '../../public/pc/fi/video' import Folder from './Folder' interface FileIconProps { diff --git a/src/pages/files/components/MoveModal.tsx b/src/pages/files/components/MoveModal.tsx index 4b06f82..fa26b6e 100644 --- a/src/pages/files/components/MoveModal.tsx +++ b/src/pages/files/components/MoveModal.tsx @@ -2,7 +2,7 @@ import { useState, useEffect, useRef } from 'react' import { useTranslation } from 'react-i18next' import type { FileItem } from '@/types/file' import { Home, FolderPlus, Check, X } from 'lucide-react' -import FolderIconSvg from '../../../../public/fi/folder' +import FolderIconSvg from '../../../../public/pc/fi/folder' import { toast } from 'sonner' import { getFolders, createFolder } from '@/api/file' import { cn } from '@/lib/utils' diff --git a/src/router/index.tsx b/src/router/index.tsx index a66809d..9f1a813 100644 --- a/src/router/index.tsx +++ b/src/router/index.tsx @@ -218,63 +218,68 @@ function WorkspaceGuard() { ) } -export const router = createBrowserRouter([ - { - path: '/login', - element: , - }, - { - path: '/invite', - element: , - }, - { - path: '/s/:shareToken', - element: , - }, - { - path: '/workspace/new', - element: ( - - - - ), - }, - { - path: '/w/:slug', - element: ( - - - - ), - children: [ - { - index: true, - element: , - }, - { - path: 'files', - element: , - }, - { - path: 'storage', - element: ( - - - - ), - }, - { - path: 'transfer', - element: , - }, - ], - }, - { - path: '/', - element: , - }, - { - path: '*', - element: , - }, -]) +const baseUrl = import.meta.env.VITE_BASE_URL || '' + +export const router = createBrowserRouter( + [ + { + path: baseUrl ? `/${baseUrl}/login` : '/login', + element: , + }, + { + path: baseUrl ? `/${baseUrl}/invite` : '/invite', + element: , + }, + { + path: baseUrl ? `/${baseUrl}/s/:shareToken` : '/s/:shareToken', + element: , + }, + { + path: baseUrl ? `/${baseUrl}/workspace/new` : '/workspace/new', + element: ( + + + + ), + }, + { + path: baseUrl ? `/${baseUrl}/w/:slug` : '/w/:slug', + element: ( + + + + ), + children: [ + { + index: true, + element: , + }, + { + path: baseUrl ? `${baseUrl}/w/:slug/files` : 'files', + element: , + }, + { + path: baseUrl ? `${baseUrl}/w/:slug/storage` : 'storage', + element: ( + + + + ), + }, + { + path: baseUrl ? `${baseUrl}/w/:slug/transfer` : 'transfer', + element: , + }, + ], + }, + { + path: baseUrl ? `/${baseUrl}/` : '/', + element: , + }, + { + path: '*', + element: , + }, + ], + { basename: baseUrl ? `/${baseUrl}` : '/' } +) diff --git a/vite.config.ts b/vite.config.ts index 8c25a31..0eeec41 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -7,10 +7,14 @@ export default defineConfig(({ mode }) => { return { plugins: [react(), tailwindcss()], + base: env.VITE_BASE_URL ? `/${env.VITE_BASE_URL}/` : '/', resolve: { // 自动读取 tsconfig.json 中的 paths tsconfigPaths: true, }, + build: { + assetsDir: 'pc', + }, server: { port: 5173, host: true, -- Gitee From da2319e16113aacf082a1b22066564d23343a0a2 Mon Sep 17 00:00:00 2001 From: xiaojie <550345579@qq.com> Date: Fri, 22 May 2026 15:06:21 +0800 Subject: [PATCH 2/2] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=94=B9=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E6=89=93=E5=8C=85=E9=85=8D=E7=BD=AE=EF=BC=8C=E6=89=80?= =?UTF-8?q?=E6=9C=89=E9=9D=99=E6=80=81=E6=96=87=E4=BB=B6=E6=89=93=E5=8C=85?= =?UTF-8?q?=E5=88=B0pc=E6=96=87=E4=BB=B6=E5=A4=B9=E4=B8=8B=EF=BC=88?= =?UTF-8?q?=E6=96=B9=E4=BE=BF=E4=B8=8E=E5=85=B6=E4=BB=96=E5=89=8D=E5=8F=B0?= =?UTF-8?q?=E6=89=93=E5=8C=85=E5=90=8E=E7=9A=84=E6=96=87=E4=BB=B6=E5=8C=BA?= =?UTF-8?q?=E5=88=86=E5=A6=82=E5=90=8E=E7=BB=AD=E5=8F=AF=E8=83=BD=E4=BC=9A?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E7=A7=BB=E5=8A=A8=E7=AB=AF=EF=BC=89=202?= =?UTF-8?q?=E3=80=81router=E7=94=9F=E4=BA=A7=E7=8E=AF=E5=A2=83=E5=B8=A6?= =?UTF-8?q?=E4=B8=8Apv=E5=89=8D=E7=BC=80=EF=BC=8C=E6=96=B9=E4=BE=BF?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E7=9B=B4=E6=8E=A5=E5=AE=9A=E4=BD=8D=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E9=9D=99=E6=80=81=E6=96=87=E4=BB=B6=EF=BC=88=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E7=8E=AF=E5=A2=83=E4=B8=8D=E5=8F=97=E5=BD=B1=E5=93=8D?= =?UTF-8?q?=EF=BC=89=203=E3=80=81=E4=B8=BB=E8=A6=81=E7=94=A8=E4=BA=8E?= =?UTF-8?q?=E6=96=B9=E4=BE=BF=E5=8F=91=E7=89=88=EF=BC=8C=E5=B0=86=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E6=89=93=E5=8C=85=E5=90=8E=E7=9A=84=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BD=9C=E4=B8=BA=E5=90=8E=E7=AB=AF=E9=A1=B5=E9=9D=A2=E6=A8=A1?= =?UTF-8?q?=E7=89=88=E4=B8=80=E5=90=8C=E6=89=93=E5=8C=85=E5=88=B0jar?= =?UTF-8?q?=E4=B8=AD=E8=BF=9B=E8=A1=8C=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/index.tsx | 21 ++++++++++----------- vite.config.ts | 5 +++-- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/router/index.tsx b/src/router/index.tsx index 9f1a813..c9e4766 100644 --- a/src/router/index.tsx +++ b/src/router/index.tsx @@ -220,22 +220,21 @@ function WorkspaceGuard() { const baseUrl = import.meta.env.VITE_BASE_URL || '' -export const router = createBrowserRouter( - [ +export const router = createBrowserRouter([ { - path: baseUrl ? `/${baseUrl}/login` : '/login', + path: '/login', element: , }, { - path: baseUrl ? `/${baseUrl}/invite` : '/invite', + path: '/invite', element: , }, { - path: baseUrl ? `/${baseUrl}/s/:shareToken` : '/s/:shareToken', + path: '/s/:shareToken', element: , }, { - path: baseUrl ? `/${baseUrl}/workspace/new` : '/workspace/new', + path: '/workspace/new', element: ( @@ -243,7 +242,7 @@ export const router = createBrowserRouter( ), }, { - path: baseUrl ? `/${baseUrl}/w/:slug` : '/w/:slug', + path: '/w/:slug', element: ( @@ -255,11 +254,11 @@ export const router = createBrowserRouter( element: , }, { - path: baseUrl ? `${baseUrl}/w/:slug/files` : 'files', + path: 'files', element: , }, { - path: baseUrl ? `${baseUrl}/w/:slug/storage` : 'storage', + path: 'storage', element: ( @@ -267,13 +266,13 @@ export const router = createBrowserRouter( ), }, { - path: baseUrl ? `${baseUrl}/w/:slug/transfer` : 'transfer', + path: 'transfer', element: , }, ], }, { - path: baseUrl ? `/${baseUrl}/` : '/', + path: '/', element: , }, { diff --git a/vite.config.ts b/vite.config.ts index 0eeec41..dc98b62 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -6,8 +6,9 @@ export default defineConfig(({ mode }) => { const env = loadEnv(mode, process.cwd(), '') return { + // 固定 base 为根路径,确保资源路径为 /pc/xxx.js 而非 /pv/pc/xxx.js + base: '/', plugins: [react(), tailwindcss()], - base: env.VITE_BASE_URL ? `/${env.VITE_BASE_URL}/` : '/', resolve: { // 自动读取 tsconfig.json 中的 paths tsconfigPaths: true, @@ -21,7 +22,7 @@ export default defineConfig(({ mode }) => { open: true, proxy: { '/apis': { - target: env.VITE_API_BASE_URL || 'http://localhost:8080', + target: env.VITE_API_BASE_URL || 'http://localhost:6677', changeOrigin: true, }, }, -- Gitee