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