仅含HTML/CSS/JS的静态文件如何部署到Vercel?
已找到对应解决方案,可查看我的首条回答。
问题详情
- 部署场景:从GitHub拉取代码部署纯静态项目,项目仅包含HTML、CSS、JS三类文件,目录结构如下:
├─js │ ├─form.js │ ├─logic.js │ └─anotherFile.js ├─index.html └─styles.css
- 部署操作:部署时未选择特定框架预设,选择了「Other」选项
- 故障现象:部署完成后,通过平台分配的默认域名访问项目时出现404错误,控制台报错
Failed to load resource;但本地直接双击打开index.html文件时项目可以正常运行 - 核心诉求:明确该类纯静态项目的正确部署方式,解决访问404问题
解决步骤
按以下顺序排查配置即可解决问题:
- 确认发布目录配置
选择「Other」框架预设时,平台不会自动识别静态资源根目录,需要手动将发布目录指定为存放index.html的仓库根目录,不要误选js等子文件夹作为发布目录。 - 校验静态资源引用路径
本地打开HTML文件的文件协议环境,和服务器的HTTP协议环境路径解析规则有差异:- 禁止使用
file://开头的本地绝对路径引用资源,这类路径在服务器环境下必然无法加载 - 检查所有JS、CSS引用路径的大小写,Linux托管服务器严格区分路径大小写,比如代码里写
/js/Form.js但实际文件名为form.js就会触发404,本地Windows环境默认不区分大小写不会暴露这个问题。
- 禁止使用
- 配置默认首页
「Other」预设不会自动配置默认首页,需要在平台部署设置页,手动将默认文档/默认首页设置为index.html,否则访问域名根路径时,平台找不到入口文件会直接返回404。 - 路由适配(仅单页路由场景需要)
如果项目用到了前端路由,需要在平台配置URL重写规则,将所有路径请求统一回退指向index.html,避免刷新子页面时出现404。纯静态无路由的普通页面不需要做这步配置。
内容的提问来源于stack exchange,提问作者Niv
相关产品推荐
相关产品推荐

