diff --git a/.env.production b/.env.production index 2d1bf5ff59589cae68929510a857291dceb55318..4e84ef3991486f99bdd8ccc09ea99a043c606e37 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 f142c30101ddc6676097b86720cbb36395e7f7d0..ae9e202b4f85989e68f9aa7c853ce70ba5acc8d2 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 e1523ed55c503cc6a4a0b2b9eea3977bac7ad58d..b5df2d63e0fd4d0589d78a6b13ca87d4a6e94bfc 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 4b06f829738975acd7b6c140f8b4d9a63cf18bbe..fa26b6e35f0523968c71c4985dea34250fc6faa3 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 a66809d68324fc9533fea1b5613dbe85aada25f6..c9e4766fdc72a8e29cc606ca63e75fea219f798c 100644 --- a/src/router/index.tsx +++ b/src/router/index.tsx @@ -218,63 +218,67 @@ function WorkspaceGuard() { ) } +const baseUrl = import.meta.env.VITE_BASE_URL || '' + 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: , - }, -]) + { + 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: , + }, + ], + { basename: baseUrl ? `/${baseUrl}` : '/' } +) diff --git a/vite.config.ts b/vite.config.ts index 8c25a31151271a495dd065282f5c81f5367af276..dc98b625ebd2980a61bbbd7b91b408eb661da560 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -6,18 +6,23 @@ export default defineConfig(({ mode }) => { const env = loadEnv(mode, process.cwd(), '') return { + // 固定 base 为根路径,确保资源路径为 /pc/xxx.js 而非 /pv/pc/xxx.js + base: '/', plugins: [react(), tailwindcss()], resolve: { // 自动读取 tsconfig.json 中的 paths tsconfigPaths: true, }, + build: { + assetsDir: 'pc', + }, server: { port: 5173, host: true, open: true, proxy: { '/apis': { - target: env.VITE_API_BASE_URL || 'http://localhost:8080', + target: env.VITE_API_BASE_URL || 'http://localhost:6677', changeOrigin: true, }, },