SPA 路由回退配置示例
为客户端路由应用配置首页回退
配置骨架(非 Shell 命令)
location / {
try_files $uri $uri/ /index.html;
}说明
适用于使用 History API 的纯客户端单页应用,刷新子路由时由 index.html 接管。放入 http 上下文中 include 的站点文件(如 /etc/nginx/conf.d/spa.conf),root 指向前端构建目录。本示例不适用于所有预渲染静态站点或需要真实服务端 404 的页面。修改后先检查通过再重载。
示例
SPA 首页回退
完整 server 块,确保首页真实存在。
server {
listen 80;
server_name example.com;
root /srv/www/spa;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location = /index.html {
try_files $uri =404;
}
}注意事项:浏览器中未知应用路由可能仍返回 HTTP 200,需要应用自行展示未找到页面。
静态资源不走首页回退
在上述 server 内增加 assets 块,避免缺失脚本返回 HTML。
location ^~ /assets/ {
try_files $uri =404;
}注意事项:资源前缀需要与构建工具一致;API 路径也应单独配置反向代理,不能被首页回退吞掉。