在本地开发时react 路由用了 BrowserRouter ,但是整合springboot后失效了,后来网上说要将 BrowserRouter 换成 HashRouter 。但是url会出现 #/ 怎么才能将 #/ 去掉呢?这样太丑了,而且影响爬虫爬取 /robots.txt 文件
可以使用BrowserRouter并结合服务器端配置来去除URL中的#/。
步骤如下: 1. 在React应用中使用BrowserRouter替代HashRouter 2. 在服务器端进行配置,将所有路径都重定向到应用的入口html文件,在此文件中加入路由相关的JS和CSS文件,确保React应用能够正确运行。 3. 对于一些特殊的路径,如'/api',需要在服务器端进行特殊处理,确保不会被重定向到React应用的入口文件中。
关于第二步,以下是一个可能的Nginx配置示例:
location / {
try_files $uri /index.html;
}
这样,所有的URL都被重定向到了应用的入口html文件,并确保了React应用的正确运行。
如果需要处理一些特殊的路径,如'/api',可以加入如下配置:
location /api {
# 处理api请求
...
}
这样,被配置为'/api'的路径就不会被重定向到应用的入口html文件中,而是正确地处理api请求。