上传后页面空白或404,需确认文件是否置于服务器根目录、大小写是否匹配、相对路径资源是否存在且可读;ES模块须通过HTTP(S)访问并配置正确MIME类型;注意字体等资源的MIME声明及CORS限制;检查localStorage等API在目标环境是否可用;确保文件完整上传并清除浏览器缓存。

上传后页面空白或报 404:检查服务器根目录和文件路径
本地双击打开正常的 index.html,传到服务器却打不开,大概率是路径没对上。Web 服务器(比如 Nginx/Apache)默认只认特定目录下的请求,不是你把文件随便扔进去就能访问的。
- 确认你上传的目标路径是不是服务器配置的网站根目录(如 Nginx 的
root /var/www/html;,Apache 的DocumentRoot) -
index.html必须放在该根目录下,且文件名大小写要完全一致(Linux 区分大小写,Index.html≠index.html) - 如果用了相对路径引用 JS/CSS/图片,比如
,确保js/app.js确实存在于对应子目录,且权限可读(644足够)
刷新页面提示 “Failed to load module script”:ES Module 加载限制
HTML5 里用 type="module" 引入 JS 时,浏览器会强制走 HTTP(S),不支持 file:// 协议——但很多人本地测试完直接上传,忘了改引用方式或没配好服务端 MIME 类型。
- 上传后必须通过
http://或https://访问,不能用文件管理器右键“在浏览器中打开” - 确保服务器返回的
.js文件响应头包含Content-Type: application/javascript(Nginx 默认有,Apache 可能需加AddType application/javascript .js) - 模块内用
import导入路径必须带扩展名(import { foo } from './utils.js';),也不能省略./或../
样式错乱、字体不显示、Canvas 渲染异常:MIME 类型缺失或跨域拦截
HTML5 页面重度依赖资源加载顺序和类型声明。服务器若未正确声明 .woff2、.svg、.webp 等格式的 MIME 类型,Chrome 会静默拒绝加载;而本地 file:// 下这些限制被绕过,导致上线后突然失效。
- 检查浏览器开发者工具的 Network 标签页,看是否有资源状态码为
404或blocked:mime-type-mismatch - Nginx 需在
http或server块中加入:include mime.types;并确认mime.types文件里含font/woff2 woff2;等行 - 若用
fetch()或XMLHttpRequest加载本地 JSON/CSV,又没配 CORS,会触发跨域错误(Access to fetch at 'xxx' from origin 'null' has been blocked)——此时要么启用服务端 CORS 头,要么改用静态资源内联或预加载
上传成功但功能异常:检查服务器是否禁用了某些 HTML5 API
不是所有托管环境都默认放行 HTML5 特性。比如 Shared Hosting(虚拟主机)常禁用 localStorage、indexedDB,或对 getUserMedia()(摄像头/麦克风)要求 HTTPS,甚至屏蔽 Service Worker 注册。
立即学习“前端免费学习笔记(深入)”;
- 打开浏览器控制台,看是否有类似
SecurityError: Failed to register a ServiceWorker或DOMException: Only secure contexts can use this feature -
localStorage在无痕模式或某些国产浏览器隐私模式下可能被禁用,别假设它一定可用 - 如果用了
Web Workers,确认服务器没通过X-Content-Security-Policy拦截worker-src
最常被忽略的是:你以为上传完了,其实 FTP 工具卡在“正在传输”,或者 SFTP 断连后没重传部分文件(尤其是 .map 或 .wasm 这类小文件容易丢)。上线前务必比对服务器文件列表和本地清单,再清一次浏览器缓存硬刷一次。










