必须包含DOCTYPE声明、UTF-8编码和title标签,用相对路径组织文件,本地测试需HTTP服务而非双击,上线前检查文件名小写、资源可直访、字体MIME类型正确。
直接上手建一个能访问的 HTML 网站,不需要框架、不依赖托管平台,核心就三件事:写对 index.html、放对文件结构、用对方式打开或部署。其他“教程”常把简单事绕成迷宫,这里只说你真会卡住的地方。
index.html
不是所有 HTML 都能被当成网页加载——尤其本地双击打开时,缺关键标签会触发怪异行为(比如中文乱码、样式失效、JS 不执行)。
声明,否则 IE/旧 Edge 进入怪异模式,flex 或 grid 可能完全失效
里必须有 ,否则本地打开时中文显示为方块或问号 不是可选装饰,缺失会导致浏览器标签页显示空名,SEO 和书签功能直接受损 外写内容(比如把 直接丢在 后面),部分浏览器静默忽略,但 Chrome DevTools 会标红警告我的第一个页面 你好
本地双击 index.html 和部署到服务器,路径解析规则不同——这是 90% 的图片/样式/脚本加载失败的根源。
file:// 协议运行,./css/style.css 会被解析为当前文件所在目录下的相对路径,但跨目录引用(如 ../images/logo.png)容易因误点子目录文件而断链/css/style.css 指网站根目录下的 css/ 文件夹,和物理文件位置无关css/style.css(无开头斜杠)、images/icon.svg;等确定部署方式后再决定是否加 / 转绝对路径 → 实际文件夹名是 img(大小写敏感!Linux 服务器上必 404)双击打开 index.html 看似快,但会禁用 fetch、阻止跨域请求、无法读取本地 JSON,连 localStorage 都可能受限——这不是你的代码问题,是浏览器安全策略。
python3 -m http.server 8000,然后访问 http://localhost:8000
serve(npm install -g serve),运行 serve -s .
Live Server,右键 index.html → “Open with Live Server”,自动启动并监听文件变化fetch、XMLHttpRequest、或引入了外部字体(如 Google Fonts),就必须走 http:// 协议,否则控制台报 net::ERR_FILE_NOT_FOUND 或 CORS 错误很多“建好了”的网站传到服务器后打不开,往往卡在这三点,且错误不报在页面上,只藏在浏览器控制台或服务器日志里。
index.html 文件名必须全小写、无空格、无中文——某些 Linux 主机(尤其是共享虚拟主机)对大小写敏感,Index.html ≠ index.html
http://yoursite.com/css/main.css 应返回 CSS 内容,而不是 404 页面或下载弹窗@font-face 中的 url() 路径正确,且服务器允许该 MIME 类型(.woff2 需配置 application
/font-woff2)真正麻烦的从来不是写 HTML,而是路径、协议、大小写这三样东西在不同环境里反复咬人。先跑通本地 http://localhost,再上传,比一边双击一边猜错因高效得多。