From 0af967d6c9247d834f88d52479d70229bc33c819 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Sat, 9 Aug 2025 23:38:36 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E6=A1=8C=E9=9D=A2?= =?UTF-8?q?=E7=AB=AF=E5=87=BA=E7=8E=B0=E6=89=93=E5=BC=80=E4=B9=85=E4=B9=8B?= =?UTF-8?q?=E5=90=8E=E8=AE=BF=E9=97=AE=E9=94=99=E8=AF=AF=E7=9A=84=E6=83=85?= =?UTF-8?q?=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron/electron.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/electron/electron.js b/electron/electron.js index cd4b73885..200283f58 100644 --- a/electron/electron.js +++ b/electron/electron.js @@ -176,7 +176,8 @@ async function startWebServer(force = false) { loger.warn('Temporary file cleaned up by system:', err.path, req.url); // 临时文件被系统清理,尝试从serverPublicDir重新读取并恢复 - const requestedFile = path.join(serverPublicDir, req.url === '/' ? '/index.html' : req.url); + const requestedUrl = new URL(req.url, serverUrl); + const requestedFile = path.join(serverPublicDir, requestedUrl.pathname === '/' ? '/index.html' : requestedUrl.pathname); try { // 检查文件是否存在于serverPublicDir fs.accessSync(requestedFile, fs.constants.F_OK); @@ -191,9 +192,8 @@ async function startWebServer(force = false) { fs.writeFileSync(err.path, fs.readFileSync(requestedFile)); // 文件恢复成功后,301重定向到带__redirect参数的URL - const redirectUrl = new URL(req.url, serverUrl); - redirectUrl.searchParams.set('_dt_restored', Date.now()); - res.redirect(301, redirectUrl.toString()); + requestedUrl.searchParams.set('_dt_restored', Date.now()); + res.redirect(301, requestedUrl.toString()); } catch (accessErr) { // 文件不存在于serverPublicDir,返回404 loger.warn('Source file not found:', requestedFile, 'Error:', accessErr.message);