检查本地网站开发中的访问状态与错误页,核心是让请求真正到达你正在开发的那台机器或那个端口,并区分“服务没起来”“路径不对”“端口被占用”“防火墙拦截”这几类不同结果。最直接的起点是:打开浏览器开发者工具的 Network 面板,或使用命令行工具请求本地地址,观察返回的状态码与响应内容。状态码 200 表示页面正常返回;404 表示路径存在但资源找不到;500 表示服务端代码抛错;连接被拒绝则说明服务根本没有在监听。
假设你在本地开发一个博客页面,访问 http://localhost:3000/posts 时浏览器显示“无法访问此网站”。这时不要立刻改代码,先按下面顺序排查。
http://localhost:3000 或 http://127.0.0.1:5173。端口写错是常见问题,浏览器地址栏里的端口必须与日志一致。curl -I http://localhost:3000/posts,只看响应头。如果返回 HTTP/1.1 200 OK,说明服务正常,问题在浏览器缓存或前端路由;如果提示 Connection refused,说明没有进程监听该端口。/posts 这个路径。检查路由文件里是否定义了该地址,以及大小写、结尾斜杠是否一致。不同状态码指向不同层面,判断时不要混为一谈。
打开浏览器开发者工具,切到 Network 面板,勾选 “Disable cache”,然后刷新页面。逐条查看请求:
(failed) 或 (canceled))。(failed) 且没有状态码,把鼠标悬停在上面,通常会提示 net::ERR_CONNECTION_REFUSED 或 net::ERR_CONNECTION_TIMED_OUT,这两者分别指向“没有服务监听”和“连接被拦截或超时”。端口被占用。如果启动服务时报 EADDRINUSE,说明该端口已被其他进程使用。可以换一个端口启动,或先找到并结束占用进程。判断方法:换端口后能正常访问,就说明原端口冲突。
只监听 127.0.0.1 还是 0.0.0.0。有些开发服务器默认只绑定本机回环地址,此时用 localhost 能访问,但用局域网 IP 从手机访问会失败。如果需要在其他设备上测试,要确认启动参数是否允许外部访问,并检查系统防火墙是否放行该端口。
选定一个当前无法访问的本地地址,按“终端进程 → 监听端口 → 命令行请求 → 浏览器 Network 面板”的顺序走一遍,记录每一步的实际输出。把失败发生在哪一层确定下来之后,再针对那一层去改配置或代码,比反复刷新页面更有效。