当我们使用Laravel时,有没有办法从反应路由器中删除#。目前我有一个Laravel应用程序,我使用其中一个刀片视图作为SPA,它已分配给Route ::(' /')。我无法想出从反应路由器端删除哈希。历史记录或HTML5push状态设置无效。
我是否需要从NGINX端进行配置?
非常感谢帮助。
答案 0 :(得分:4)
您需要告诉Laravel的路由将所有相关请求路由到您的React刀片视图。
因此,在routes.php文件的末尾,您应该添加如下内容:
.entry-content {
padding:0px;
}
或者,如果您想使用控制器并且能够缓存您的路线。:
Route::any('{path?}', function () {
return view('react');
})->where('path', '.+');
这可以解决服务器方面的问题,我假设你的帖子已经处理完了前端的东西了!
以防万一,对于1.0.0-rc1版本的React路由器,你会在javascript代码的顶部附近有这样的东西:
Route::any('{path?}', 'ReactController@index')->where('path', '.+');
您稍后会像以下那样渲染您的路由器:
import createBrowserHistory from 'history/lib/createBrowserHistory';
let history = createBrowserHistory();
对于您似乎正在使用的版本0.13.x,您应该在Router.run函数上添加Router.HistoryLocation参数。例如:
<Router history={history}>
<Route path="/" component={Body}>
<IndexRoute component={Home} />
<Route path="about" component={About}>
</Route>
</Route>
</Router>
相关文档在https://github.com/rackt/react-router/blob/0.13.x/doc/04%20Locations/HistoryLocation.md,不幸的是它们似乎没有提供示例。
答案 1 :(得分:0)
试试这个 import BrowserRouter from "react-router-dom/BrowserRouter";
<BrowserRouter>