gpt4 book ai didi

javascript - 使用 Django + react-router 找不到 404 页面

转载 作者:数据小太阳 更新时间:2023-10-29 06:05:51 24 4
gpt4 key购买 nike

我正在尝试将 reactjsreact-router (1.x) 与我的 Django 应用程序一起使用,但我遇到了困难把所有这些放在一起。这是 github 项目,以防我在这个问题中没有提供足够的信息。

https://github.com/liondancer/django-cherngloong

我在我的 routes.js 中创建了一个 path="about"

var routes = (
<Router>
<Route path="/" component={ Views.Layout }>
<IndexRoute component={ Views.Index } />
<Route path="about" component={ Views.About } />
</Route>
<Route path="*" component={ Views.RouteNotFound } />
</Router>
);

export default routes;

我的layout.js

class Layout extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div id="review-web">
<header className="header">
<LogoElement />
<CenterPiece />
</header>
<div>
{ React.cloneElement(this.props.children, { path: this.props.path }) }
</div>
<Footer />
</div>
);
}
}

export default Layout;

当我输入 localhost.8000/about 时,出现 404 Django 错误

enter image description here

我的目标是保持前端和后端分离,因此我相信我应该能够将 Django 用作数据的端点而不是渲染 View 。

最佳答案

我遇到了同样的问题并最终得到了这个解决方案。

设置.py:

REACT_ROUTES = [
'login',
'signup',
'password-reset',
'password-change',
'about',
...
]

urls.py:

routes = getattr(settings, 'REACT_ROUTES', [])
urlpatterns = [
...
url(r'^(%s)?$' % '|'.join(routes), TemplateView.as_view(template_name='index.html')),
]

我不喜欢在 django 设置中复制所有 react-routes,但是如果我们把所有东西都放在那里 url(r'^.*$'),服务器将始终返回 HTTP status_code 200。这只是能够为不存在的 url 返回有效的 HTTP status_code 404 的一种方法。

关于javascript - 使用 Django + react-router 找不到 404 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33221473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com