如何为 React Router 配置 Python Tornado?

问题描述 投票:0回答:1

我正在使用 Tornado 托管一个 React SPA,该 SPA 使用 React Router 进行客户端路由。

一切正常,直到我刷新浏览器中由 React Router 处理的路径(例如

/foo/bar
),这会导致 404。如何将这些路径重定向到主
index.html
,以便 React Router 可以处理它们?

我尝试使用 Tornado 内置的 StaticFileHandler 和 RedirectHandler 来做到这一点,但无法让它工作。

python reactjs react-router tornado
1个回答
0
投票

我设法通过子类化

StaticFileHandler
并将所有请求转发到
index.html
来使客户端路由与 Tornado 一起使用:

class IndexFileHandler(StaticFileHandler):
    def get(self, path: str, include_body: bool = True):
        return super().get('index.html', include_body)

然后将此处理程序作为包罗万象的处理程序包含在内:

self.app = tornado.web.Application([
    ...
    (r"/(.*)", IndexFileHandler, {"path": static_path, "default_filename": "index.html"}),
])
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.