@echo off setlocal enabledelayedexpansion echo ======================================== echo 鲸鱼镇 本地Web服务器 v1.0 echo ======================================== echo. REM 配置变量 set "BUILD_DIR=build\web" set "PORT=8000" set "FALLBACK_PORT=8080" REM 颜色代码 set "RED=[91m" set "GREEN=[92m" set "YELLOW=[93m" set "BLUE=[94m" set "RESET=[0m" REM 检查导出文件 echo %BLUE%[检查]%RESET% 验证Web导出文件... if not exist "%BUILD_DIR%\index.html" ( echo %RED%[错误]%RESET% 未找到Web导出文件! echo. echo 请先运行以下命令导出项目: echo scripts\build_web.bat echo. echo 或在Godot编辑器中导出Web版本到: %BUILD_DIR%\ echo. pause exit /b 1 ) REM 检查必要文件 echo %BLUE%[验证]%RESET% 检查必要文件... set "REQUIRED_FILES=index.html index.js index.wasm index.pck" set "MISSING_FILES=" for %%f in (%REQUIRED_FILES%) do ( if not exist "%BUILD_DIR%\%%f" ( set "MISSING_FILES=!MISSING_FILES! %%f" ) ) if not "!MISSING_FILES!"=="" ( echo %RED%[错误]%RESET% 缺少必要文件:!MISSING_FILES! echo 请重新导出项目 echo. pause exit /b 1 ) REM 检查Python echo %BLUE%[检查]%RESET% 验证Python环境... python --version >nul 2>&1 if %ERRORLEVEL% neq 0 ( echo %RED%[错误]%RESET% 未找到Python! echo. echo 请安装Python 3.x: echo 下载地址: https://python.org/downloads echo 或使用包管理器: winget install Python.Python.3 echo. echo 安装后请重启命令提示符 echo. pause exit /b 1 ) REM 获取Python版本 for /f "tokens=2" %%i in ('python --version 2^>^&1') do set "PYTHON_VERSION=%%i" echo %GREEN%[信息]%RESET% Python版本: %PYTHON_VERSION% REM 显示文件信息 echo. echo %GREEN%[信息]%RESET% Web文件统计: set "TOTAL_SIZE=0" for %%f in ("%BUILD_DIR%\*") do ( set "size=%%~zf" set /a "TOTAL_SIZE+=size" set /a "size_mb=size/1024/1024" if !size_mb! gtr 0 ( echo %%~nxf: !size_mb! MB ) else ( set /a "size_kb=size/1024" echo %%~nxf: !size_kb! KB ) ) set /a "TOTAL_MB=TOTAL_SIZE/1024/1024" echo 总大小: %TOTAL_MB% MB REM 检查端口占用 echo. echo %BLUE%[网络]%RESET% 检查端口占用... netstat -an | find ":%PORT%" >nul 2>&1 if %ERRORLEVEL% equ 0 ( echo %YELLOW%[警告]%RESET% 端口 %PORT% 已被占用,尝试使用 %FALLBACK_PORT% set "PORT=%FALLBACK_PORT%" netstat -an | find ":%PORT%" >nul 2>&1 if %ERRORLEVEL% equ 0 ( echo %RED%[错误]%RESET% 端口 %PORT% 也被占用! echo 请手动指定端口: python -m http.server [端口号] echo. pause exit /b 1 ) ) REM 获取本机IP地址 for /f "tokens=2 delims=:" %%i in ('ipconfig ^| find "IPv4"') do ( set "LOCAL_IP=%%i" set "LOCAL_IP=!LOCAL_IP: =!" goto :ip_found ) :ip_found REM 显示启动信息 echo. echo %GREEN%[启动]%RESET% 启动HTTP服务器... echo 端口: %PORT% echo 目录: %BUILD_DIR% echo Python: %PYTHON_VERSION% echo. echo ======================================== echo %GREEN% 访问地址%RESET% echo ======================================== echo 本地访问: http://localhost:%PORT% echo 局域网访问: http://!LOCAL_IP!:%PORT% echo. echo %YELLOW%[控制]%RESET% 服务器控制: echo 停止服务器: Ctrl+C echo 重启服务器: 关闭后重新运行脚本 echo. echo %BLUE%[调试]%RESET% 调试工具: echo 开发者工具: F12 echo 控制台日志: 查看浏览器Console echo 网络请求: 查看Network标签 echo. echo ======================================== REM 尝试自动打开浏览器 echo %BLUE%[浏览器]%RESET% 尝试打开默认浏览器... start http://localhost:%PORT% >nul 2>&1 if %ERRORLEVEL% neq 0 ( echo %YELLOW%[提示]%RESET% 无法自动打开浏览器,请手动访问上述地址 ) echo. echo %GREEN%[就绪]%RESET% 服务器启动中... echo. REM 切换到构建目录并启动服务器 cd "%BUILD_DIR%" REM 创建简单的服务器日志 echo [%date% %time%] 服务器启动 - 端口:%PORT% >> server.log REM 启动Python HTTP服务器 python -m http.server %PORT% REM 服务器停止后的清理 echo. echo %YELLOW%[停止]%RESET% 服务器已停止 echo [%date% %time%] 服务器停止 >> server.log REM 返回原目录 cd ..\.. echo. echo %GREEN%[完成]%RESET% 感谢使用鲸鱼镇Web服务器! echo. pause