修掉资源 404 被当成页面返回的 bug;加一条命令起开发模式

单页应用的兜底原本对任何找不到的路径都回 index.html,包括带扩展名的资源。
资源文件是带哈希的,每次打包换名字,浏览器缓存了旧 index.html 时会去请求一个已经
不存在的 .js,然后拿到一份 HTML,报出「MIME 类型不对」——一句完全指不到病根的错误。
现在带扩展名的路径找不到就回 404,index.html 也不再允许缓存。

另外 dev:all 一条命令同时起后端(--hot)和前端(Vite),省掉记两个终端和两个端口。
This commit is contained in:
im0o
2026-08-10 14:15:22 +08:00
parent 860da5d28f
commit 6029eacf50
4 changed files with 64 additions and 10 deletions
+12 -6
View File
@@ -24,18 +24,24 @@ bun run start # 打包前端并启动,默认 http://127.0.0.1:7580
## 开发
改前端时用 Vite,它会把接口请求转发给后端:
改代码的时候用这个,前后端都不用重启:
```bash
bun run dev # 后端,带热重载
bun run dev:web # 前端,http://localhost:5173
bun run dev:kernel # 终端 1:本地测试内核,开着不用管
bun run dev:all # 终端 2:后端 + 前端,改了自动生效
```
本地有一份测试用的内核配置(`dev/config.yaml`,全是占位地址,端口刻意避开 mihomo 的默认值),可以对着它跑完整的「写回 → 校验 → 重载 → 失败还原」:
然后访问 **http://localhost:5173**(不是 7580)。后端代码改动由 Bun 的 `--hot` 重载,
界面改动由 Vite 直接更新浏览器。
`bun run start` 不具备这个能力——它把前端打成静态文件再由后端提供,代码一改就得重新
打包重启。那种方式适合最终验证和部署。
本地测试内核的配置由模板生成(`dev/config.yaml` 进 git,订阅地址从 `.env` 取,
生成的 `dev/home/config.yaml` 不进 git):
```bash
bun run dev:kernel # 启动本地测试内核,管理接口 19090
bun run dev:reset # 把测试配置恢复成模板的样子
bun run dev:reset # 第一次,或想把测试配置恢复成模板时
```
## 检查