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,
},
},