1.4 KiB
1.4 KiB
豆包式布局修复计划(崩溃 + 布局)
日期:2026-09-12
Fix A — 修复 Cannot set properties of null(新旧资源缓存错配)
根因:/ 返回启动时缓存、无缓存头的 HTML;静态资源无版本号 → 浏览器缓存旧 chat.js/chat.html 之一后新旧混用,getElementById(...) 为 null 时 .textContent 抛错。
修复:
app.py:启动时按 static 文件st_mtime_ns计算_ASSET_VER,注入chat.html的__ASSET_VER__;index()返回HTMLResponse(..., headers={"Cache-Control":"no-store","Pragma":"no-cache"})。chat.html:4 个资源 URL 加?v=__ASSET_VER__。chat.js:新增setText(el, v),关键.textContent赋值 null 安全(防白屏)。- 部署后强刷一次清掉旧 HTML 缓存。
Fix B — 布局(去线 / 铺满 / 图标发送 / 省空间)
#composer:去border-top、背景透明、内边距收紧(与聊天区无缝)。#composer-inner/#composer-toolbar/#upload-panel:去 880px 限宽,输入框铺满右侧。#send:SVG 上箭头图标 + 40px 圆形按钮。header:高度 56→48、padding 收紧。- 输入框改
<textarea rows="1">自增高(≤160px);Enter 发送、Shift+Enter 换行。 - 消息区
#chat保持max-width:880px居中(按用户选择)。
验证
node --check → node --test → python -m pytest(≥99%)→ 手动强刷核对。