
Misc. bug: Web UI is broken
快速结论:该报错通常出现在使用 AUR 包(如 llama.cpp-cuda 或 llama.cpp-vulkan)安装的 llama-server 中,浏览器访问 Web UI 时会加载失败并返回 404 错误。优先排查编译时的 -DLLAMA_BUILD_WEBUI=ON 和 -DLLAMA_USE_PREBUILT_UI=ON 选项是否正确设置。
问题场景
用户在 Arch Linux 上通过 AUR 包(llama.cpp-cuda)安装 llama.cpp,运行 llama-server 启动 Web UI 后,在 Firefox 和 Chromium 浏览器中均无法正常加载页面。报错提示 GET http://localhost:8080/tools 404 Not Found,导致 UI 整体不可用。
报错原文
XHR
GET
http://localhost:8080/tools
[HTTP/1.1 404 Not Found 0ms]
[ToolsStore] Failed to fetch built-in tools: Error: File Not Found
Cg http://localhost:8080/bundle.js:43
list http://localhost:8080/bundle.js:135
fetchBuiltinTools http://localhost:8080/bundle.js:135
owe http://localhost:8080/bundle.js:135
http://localhost:8080/bundle.js:135
原因分析
可能原因:AUR 包在构建时未能正确编译或包含 Web UI 的前端资源文件(例如 bundle.js 和 tools 端点所需的静态文件)。用户尝试手动增加 -DLLAMA_BUILD_WEBUI=ON 选项无效,但使用包含 -DLLAMA_USE_PREBUILT_UI=ON 和取消手动调用 npm 的 PKGBUILD 后问题修复。这表明 AUR 包的默认构建配置可能遗漏了必要的 CMake flags 或 npm 构建步骤,导致前端资源缺失。
环境排查
- 确认 llama.cpp 版本:Issue 中报告为 build 9245(cae45a9),用户测试 b9222 从源码编译正常。
- 确认操作系统:Arch Linux。
- 确认 AUR 包名称和 CMake 配置:llama.cpp-cuda 或 llama.cpp-vulkan,关注
-DLLAMA_BUILD_WEBUI和-DLLAMA_USE_PREBUILT_UI是否在 PKGBUILD 中启用。 - 检查浏览器控制台网络请求,确认
/tools和其他端点是否返回 404。
解决步骤
- 从源码手动编译(优先尝试):直接克隆 llama.cpp 仓库,使用 cmake 配置并确保包含
-DLLAMA_BUILD_WEBUI=ON和-DLLAMA_USE_PREBUILT_UI=ON,然后编译。手动编译已验证可修复问题(参考 b9222 版本)。 - 修改 AUR PKGBUILD(针对高级用户):检查 AUR 包的 PKGBUILD,确认 CMake 选项是否包含
-DLLAMA_BUILD_WEBUI=ON。如果缺失,在build()函数的_cmake_options中添加该选项。 - 避免手动调用 npm:如果 PKGBUILD 中手动调用 npm 安装前端依赖,建议删除该步骤,让 CMake 自动处理(配置
-DLLAMA_USE_PREBUILT_UI=ON可启用预构建 UI 作为 fallback)。 - 使用已修复的派生包:可参考社区中已修改的 PKGBUILD 示例(如 llama.cpp-vulkan-custom),复制其 CMake 选项到自己的 PKGBUILD 中。
- 更新 AUR 包:检查 AUR 包最近是否有更新(Issue 中提及 b9222 后 PKGBUILD 移除了手动 npm 调用),升级到最新版本可能自动修复问题。
验证方法
重新编译并启动 llama-server 后,使用浏览器访问 http://localhost:8080,确认 Web UI 正常加载且浏览器控制台无 404 错误。同时检查 http://localhost:8080/tools 端点是否返回有效的 JSON 数据。



