Cloudflare Pages部署纯HTML项目需留空Build command并设Output directory为.(英文句点),因默认触发构建导致404;index.html须置于仓库根目录且全小写,路径区分大小写,SPA需添加./_redirects文件实现路由fallback。

纯 HTML 项目直接扔进 Cloudflare Pages 会 404,不是你文件错了,是它默认要执行构建流程——而你根本不需要构建。
Build command 留空但 Output directory 必须填 .
Cloudflare Pages 后台配置里,“Build command” 看似可选,但留空 ≠ 不执行构建;它会 fallback 到默认行为(比如尝试 npm run build),然后报错“no such script”。真正的解法是:把 Build command 设为 exit 0(推荐)或干脆不填,同时 Output directory 填 .(英文句点,不能是 ./、"" 或 public)。
原因很实际:. 是唯一被识别为“就用 Git 仓库根目录当发布根”的写法。填 dist 它就找 dist/index.html,但你没这个目录;填空它自动构建;填 ./ 会被拒绝。
-
index.html必须在 Git 仓库最顶层,不能在src/、docs/或子文件夹里 - 文件名必须全小写:
Index.html或INDEX.HTM在 Linux 构建环境里就是 404 - 如果用了自定义域名,DNS 必须由 Cloudflare 托管,否则 HTTPS 证书不会生效
本地能打开,上线后图片/JS/CSS 404
这不是 Cloudflare 的问题,是你提交的文件结构和它服务的路径不一致。Pages 只按你 Git 提交的树形结构 + Output directory 设置来映射 URL,不猜、不补、不重写路径。
立即学习“前端免费学习笔记(深入)”;
常见原因:
- 图片路径写成
src="images/logo.png",但 Git 里根本没有images/目录(git ls-tree -r HEAD --name-only | grep images返回空) - 用了 Hugo/Next.js 等生成器,但图片放在
src/assets,没按规则放去static/或public/ - URL 区分大小写:本地 Windows 不敏感,但 Pages 构建环境是 Linux,
Logo.png和logo.png是两个文件
验证方式:用真实构建命令生成产物(如 hugo --destination ./dist),再起本地服务器 cd dist && python3 -m http.server 8000,看是否复现线上问题。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
img align 失效不是部署问题,是 HTML 写法过时
align 属性在 HTML5 中已废弃,Cloudflare Pages 不做兼容处理,浏览器直接忽略。你改了部署设置也白搭。
替换方案很简单:
- 内联样式:
<img src="a.jpg" style="max-width:90%" alt="HTML怎么做Cloudflare Pages_html Cloudflare Pages部署方法【详解】" > - 外链 CSS:
<img src="a.jpg" class="img-right" alt="HTML怎么做Cloudflare Pages_html Cloudflare Pages部署方法【详解】" >+.img-right { float: right; } - Markdown 场景下,用
<div class="text-right"><img alt="HTML怎么做Cloudflare Pages_html Cloudflare Pages部署方法【详解】" ></div>包裹
顺带一提:构建日志里如果出现 “deprecated align attribute” 警告,别跳过——那是最直接的线索。
加 ./_redirects 避免单页应用路由 404
如果你的 HTML 是 SPA(比如用 Vue Router 或 React Router 的 createBrowserRouter),直接访问 /about 会 404,因为 Pages 默认只认物理文件路径。
解决方法是在仓库根目录加一个 ./_redirects 文件,内容只有一行:
/ /index.html 200
这告诉 Pages:所有未匹配到物理文件的请求,都返回 index.html,由前端路由接管。注意该文件必须在 Git 根目录,且不能叫 _redirects.txt 或放在子目录。
真正卡住人的地方往往不是技术多难,而是 . 和 ./ 的区别、大小写敏感、以及把过时 HTML 当成部署问题去调——这些点不盯死,反复重试也没用。


















