我有一个带有 React 前端的去中心化应用程序。如果我转到主页 (https://app.valerianprotocol.com/),一切正常,我可以毫无问题地刷新页面。另一方面,如果我导航到另一个页面(例如 https://app.valerianprotocol.com/pool),如果我刷新,我将得到一个 404 页面。我已经调试了 3 个小时,但我找不到任何东西。有人可以帮我解决什么问题吗?如果不是主页,页面可能不会保存 sessionid?
回答1
问题是当使用 react 和路由器库(例如 React-router)时,您不会获取页面“/pool”,您只需更改 index.html
内的主 html 元素的内容,它就可以正常工作如果您在 React 应用程序中使用链接和导航。但是当加载一个不是根的页面时,服务器会尝试为不存在的文件夹 /pool
提供服务,因此它会返回 404 错误。解决此问题的选项是切换到例如 HashRouter
或更改服务器配置以将所有重定向到 ìndex.html
。 .htaccess
规则示例:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . /index.html [L]
</IfModule>