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

标签 javascript python django reactjs react-router

我正在尝试将 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/

相关文章:

python - 如何在Django Rest框架中的manytomanyfield中的序列化器中获取键的值?

javascript - 通过 handlebars.js 中的动态属性遍历对象

javascript - 确定元素是否在范围内?

python - Tcl_AsyncDelete 错误多线程 Python

python - 在列表列表中搜索列表的快速方法

django - Django表单集无效

javascript - 为什么我会收到此 Javascript 错误 "connection is not defined"?

javascript - 在 React 中为 div 列表设置动画

python - 使用 csv.reader 的制表符分隔文件未在我期望的位置分隔

python - Django:我如何使用 STATICFILES_FINDERS