vscode 本身不提供离线文档服务,需依赖本地运行时(如 php、python 或 node.js)启动 http 服务来访问静态 html 文档包;关键前提是拥有结构完整的离线文档(如 php_manual_en.zip 解压后含 index.html 和 res/ 目录),且必须通过 http:// 协议访问(不能用 file://),推荐用 php -s localhost:8000 启动最简服务,或用 python/node.js 替代,并可通过 .vscode/tasks.json 配置一键启动任务。

VSCode 本身不提供离线文档服务,所谓“离线文档”实际是把 PHP/Python/Node.js 等本地运行时启动的 Web 服务指向文档目录(如 php-docs 或 mdn-web-docs 静态资源),关键在于你有没有现成的 HTML 文档包,以及能否用 CLI 工具快速起一个不依赖网络的 HTTP 服务。
确认你手头有可运行的离线文档包
常见离线文档格式是纯静态 HTML(比如 PHP 官方手册的 php_manual_en.zip 解压后是 index.html + res/ 目录),不是 PDF 或 CHM。打开解压后的根目录,双击 index.html 能正常浏览,说明结构可用;若点击链接 404,大概率是因为它依赖相对路径或内嵌 JS 路由——这类文档必须通过 http:// 协议访问,不能直接用 file://。
- PHP 手册离线版:解压后应含
index.html、language-reference/、res/等目录 - MDN Web Docs 离线镜像:通常以
mdn/为根,含index.html和大量/en-us/子路径 - 不要用 Electron 封装的“离线文档 App”,那种和 VSCode 无关,也无法被你控制
用 php -S 启动最简本地 Web 服务
这是最快、最轻量、且 VSCode 内置终端能直接跑的方式。前提是系统已安装 PHP(php -v 在终端返回版本号),且文档包根目录下没有 router.php ——否则需手动指定路由脚本。
- 进入文档根目录:
cd /path/to/php-manual-en - 启动服务:
php -S localhost:8000(默认以当前目录为 Web 根) - 如果入口不是
index.html,而是index.htm或其他文件,加-t指定目录:php -S localhost:8000 -t . - 浏览器访问
http://localhost:8000,此时所有相对链接、CSS、JS 都能正确加载 - ⚠️ 注意:
php -S不支持.htaccess,也不处理 URL 重写;若文档依赖重写(如某些 MDN 镜像),得换用 Python 或 Node.js
替代方案:Python 或 serve 命令(无 PHP 时)
如果你没装 PHP,但系统有 Python 3.7+ 或 Node.js,也能快速起服务。它们不依赖额外配置,但要注意路径和 MIME 类型兼容性。
- Python 3 内置 HTTP 服务:
python3 -m http.server 8000 --directory /path/to/docs(Python 3.7+ 支持--directory) - Python 2 或旧版 Python 3:
cd /path/to/docs && python -m SimpleHTTPServer 8000(注意:不支持 UTF-8 文件名,部分中文路径会 404) - Node.js 用户可全局装
serve:npm install -g serve,然后serve -s /path/to/docs -p 8000 - ⚠️ 所有这些服务都只监听
localhost,外网无法访问,符合离线安全要求;但改完文档内容后,必须手动重启服务
VSCode 中如何快捷启动并保持服务常驻
别每次手动敲命令。在项目根目录(即文档包所在目录)建一个 .vscode/tasks.json,定义一个可一键运行的任务:
{
"version": "2.0.0",
"tasks": [
{
"label": "start-php-docs",
"type": "shell",
"command": "php -S localhost:8000",
"isBackground": true,
"problemMatcher": [],
"group": "build"
}
]
}
之后按 Ctrl+Shift+P → Tasks: Run Task → 选 start-php-docs,服务就起来了。终端会持续输出请求日志,关掉终端标签页即停止服务。这个方式比插件更可控,也不依赖 Live Server 对 index.html 的硬编码逻辑。
真正容易被忽略的是文档包本身的完整性——很多所谓“离线手册”下载后缺失 res/ 目录或图标字体,导致页面空白或样式错乱;启动服务前务必先用浏览器打开 index.html 确认基础渲染正常,再切到 VSCode 里用命令行起服务。











