必须确保index.html位于项目根目录或public/子目录下,否则Netlify无法识别导致404;常见错误包括index.html置于src/等深层路径、ZIP压缩包嵌套文件夹、相对路径引用不匹配发布结构。
Netlify必须在发布目录里看到 index.html(或 404.html)才能识别为有效静态站点,否则会报“Page Not Found”或直接显示 Netlify 默认欢迎页。
index.html —— HTTrack 下载后常把文件放在子文件夹里(比如 mysite/),需要把里面的内容提到顶层Index.html 或 INDEX.HTM 都不会被识别publish 路径指向的是生成后的目录(如 dist/ 或 _site/),而不是源码目录拖放 ZIP 部署看似简单,但实际容易卡在解压或路径解析环节,导致页面空白或 404。
index.html 直接在 ZIP 根层,不能嵌套在额外文件夹内(例如不要打包成 my-site/my-site/index.html).DS_Store:这些文件可能干扰 Netlify 解析,建议用 zip -r site.zip * -x ".DS_Store" 命令生成Netlify 能自动识别部分框架(如 Gatsby、Next.js),但对纯 HTML 项目或自定义构建流程,必须显式指定 command 和 publish。
command 留空,publish 填 .(点号,表示根目录)npm run build 输出到 dist/):command 填 npm run build,publish 填 dist
command 是 jekyll build,publish 是 _site;用 Astro 则是 astro build + dist
/dist 是错的,dist 才对这几乎全是路径问题,和 Netlify 本身无关,而是 HTML/CSS/JS 中引用的相对路径没对齐发布结构。
立即学习“前端免费学习笔记(深入)”;
<link rel="stylesheet" href="css/style.css"> 这类路径 —— 如果你的 CSS 文件实际在 assets/css/style.css,那 href 就得写成 assets/css/style.css
<img src="images/logo.png"> 要确保 images/logo.png 真的存在于 ZIP 或 Git 仓库中对应位置/css/style.css),除非你设置了 baseURL 或 Netlify 的 _redirects 规则来兜底Netlify 对纯静态站点足够友好,但它的自动化建立在“约定优于配置”基础上——它不猜你想要什么,只严格按规则执行。最常出问题的地方不是部署操作本身,而是本地文件组织和路径引用这两个隐形环节。