快速结论:ComfyUI 回归问题:user.css 因服务器返回 Content-Disposition: attachment 导致 Chromium/Electron 拒绝将其作为样式表加载。优先检查 app/user_manager.py 中 getuserdata() 是否对 CSS 文件误加了附件头。
适用环境:ComfyUI(后端),影响 ComfyUI Desktop(Chromium/Electron 环境)。Python 版本未明确,但涉及 aiohttp 的 web.FileResponse。
最快修复方案:暂无官方一步修复;临时方案:手动修改 app/user_manager.py,在 getuserdata() 中对 user.css 移除 Content-Disposition: attachment 头。示例代码(来源 Issue 正文):
if os.path.basename(path) == "user.css":
return web.FileResponse(
path,
headers={
"Content-Type": "text/css",
"X-Content-Type-Options": "nosniff",
},
)
注意事项:此修改需自行编辑后端代码,恢复后会降低对任意文件上传的存储型 XSS 防护(原 attachment 头是安全缓解措施)。官方可能在未来版本中通过前端侧修正,请关注相关 PR(如 #15000)更新。
问题场景
用户创建 user/default/user.css 并添加自定义样式后,ComfyUI 桌面端前端无法应用该样式表,但网络请求显示 HTTP 200 成功。
报错原文
Regression: user.css is no longer applied because /api/userdata/user.css is served as attachment
Content-Disposition: attachment
X-Content-Type-Options: nosniff
原因分析
可能原因是 ComfyUI 的后端 app/user_manager.py 中的 getuserdata() 函数对所有通过 /api/userdata/ 返回的文件都设置了 Content-Disposition: attachment 头(作为存储型 XSS 缓解措施)。Chromium/Electron 检测到此头后,将 CSS 文件视为下载附件,不再将其作为样式表解析,导致 user.css 被忽略。此行为在 #14734 引入回归(见关联 PR #15000)。
环境排查
- 确认是否使用 ComfyUI Desktop(Chromium/Electron 环境),或其他基于 Electron 的浏览器包装器。
- 检查后端版本是否包含
#14734或之后的安全修复。 - 非必需:
user.css文件路径是否正确(默认user/default/user.css)。
解决步骤
- 定位
app/user_manager.py文件(通常在 ComfyUI 安装目录下)。 - 找到
getuserdata()函数,查找类似以下代码块:return web.FileResponse(path, headers={ "Content-Type": content_type, "X-Content-Type-Options": "nosniff", "Content-Disposition": "attachment", }) - 将上述代码替换为条件分支(参考 Issue 正文中的建议修复,注意保留对非 CSS 文件的 attachment 头):
if os.path.basename(path) == "user.css": return web.FileResponse( path, headers={ "Content-Type": "text/css", "X-Content-Type-Options": "nosniff", }, ) else: return web.FileResponse(path, headers={ "Content-Type": content_type, "X-Content-Type-Options": "nosniff", "Content-Disposition": "attachment", }) - 保存文件,重启 ComfyUI 后端。
验证方法
在浏览器或 ComfyUI Desktop 中打开开发者工具(F12),查看网络请求 /api/userdata/user.css 的响应头。确认 Content-Disposition 消失或变为 inline。检查页面元素是否已应用 user.css 中的样式(如测试用的 body { background: red !important; })。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


