前端使用vue,并且是多入口的形式,index.html、admin.html,2个页面,nginx默认发布80端口,但是发现页面刷新的时候出现404,于是nginx配置中在localtion中添加
try_files $uri $uri/ /index.html;
解决了404问题,但是由于此处使用了固定值index.html,导致通过admin.html进入的部分刷新之后会默认走index.html这部分的路由页面中去,目前是通过多配置了一个端口指向同一个前端发布包,有没有人遇到类似的问题
如果你想要在多入口的情况下解决刷新页面导致的404问题,并且希望不同的入口能够正确加载对应的页面,可以考虑以下方法:
location / {
try_files $uri $uri/ /index.html;
}
location ~ ^/admin(/|$) {
try_files $uri $uri/ /admin.html;
}
在这个示例中,第一个location块仍然使用try_files $uri $uri/ /index.html
来处理非admin路径的请求。而第二个location块使用try_files $uri $uri/ /admin.html
来处理以/admin开头的路径请求,这样就可以正确加载admin.html作为入口文件。
location / {
try_files $uri $uri/ /index.html;
}
location /admin {
rewrite ^/admin(.*) /admin.html$1 last;
try_files $uri $uri/ /admin.html;
}
在这个示例中,第一个location块仍然使用try_files $uri $uri/ /index.html
来处理非admin路径的请求。而第二个location块使用rewrite指令将以/admin开头的请求重写到/admin.html,然后再使用try_files $uri $uri/ /admin.html
来处理重写后的请求。