http-server默认路由返回index.html的CLI配置求助及替代方案咨询
解决单页应用路由404的CLI静态服务器方案
你遇到的是典型的单页应用(SPA)路由问题——http-server作为基础的静态文件服务器,只会匹配真实存在的文件路径,当访问/foo这种前端路由时,找不到对应的物理文件就会返回404。
关于http-server的直接配置
遗憾的是,http-server本身并没有内置的CLI选项来实现"所有路由默认返回index.html"的功能,它更偏向于纯静态文件的托管场景。
推荐的同类CLI工具(无需编写代码)
下面这些工具可以直接通过CLI参数实现你要的功能:
serve:这是最常用的替代方案之一,专门适配SPA场景。安装后,只要加上
-s(或--single)参数就能让所有路由回退到index.html:# 全局安装 npm install -g serve # 运行dist目录,开启SPA模式 serve -s distlive-server:如果你还需要开发时的热重载功能,live-server也支持类似配置,通过
--entry-file指定默认返回的文件:# 全局安装 npm install -g live-server # 运行dist目录,指定所有路由返回index.html live-server --entry-file=index.html diststatic-server:同样支持SPA模式,使用
--spa参数即可:# 全局安装 npm install -g static-server # 运行dist目录,开启SPA模式 static-server dist --spa
这些工具都完全符合你"无需编写代码、纯CLI实现"的需求,选一个顺手的用就行~
内容的提问来源于stack exchange,提问作者williamsandonz
相关产品推荐
相关产品推荐

