【问题标题】:Using Browser Router in react-router-dom with Django backend在带有 Django 后端的 react-router-dom 中使用浏览器路由器
【发布时间】:2020-04-17 02:21:33
【问题描述】:

我正在构建一个使用 React 作为前端和 Django Rest 作为后端的应用程序。 在前端,我使用 react-router-dom 进行声明式路由,而 Django 仅提供 API

所以当用户输入一个像https://myapp.com/something/something-else 这样的 URL 时,它实际上是由 Django 处理的,它会返回一个错误,因为 Django 不知道这个 URL 指向哪个页面。它应该由 React 来处理。

我的解决方法之一是使用哈希路由器,因此 URL 将如下所示(带有哈希符号):https://myapp.com/#/something/something-else

但在某些情况下,用户只需键入没有井号的 URL(因为他们不知道)。

是否可以在不使用哈希路由器的情况下处理这个问题?

【问题讨论】:

  • Django 提供反应范围内的 URL 的原因是什么

标签: django reactjs react-router


【解决方案1】:

我不能确切地说,因为你没有提供代码,或者你的项目结构的解释。

你如何做一个哈希路由器?如果您让 Django 提供单个 HTML 文件,那么您应该能够编辑您的 urls.py 以将任何与 api 不匹配的 URL 传递到同一页面。

例如,我有一个带有 Preact 前端的 Django 网站,我有内置在静态 .js 文件中的 Preact 文件,然后由 Apache 提供服务。 Django 执行所有 URL 路由并提供 HTML 文件,然后从 Apache 请求 Preact JS 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    • 2023-03-13
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    • 2019-09-12
    • 2018-12-25
    相关资源
    最近更新 更多