动态路由无法在浏览器中刷新?

时间:2018-03-23 02:06:57

标签: reactjs next.js

我有一个使用next-routes的反应应用程序。导航按预期工作,但使用Page does not exist自定义路径404s刷新页面。

这仅适用于包含参数的动态路由。

routes.js:

const routes = require('next-routes')();

routes
  .add('/campaigns/new', '/campaigns/new')  //fine     
  .add('/campaigns/:address', '/campaigns/show') //fails
  .add('/campaigns/:address/requests', '/campaigns/requests/index') //fails
  .add('/campaigns/:address/requests/new', '/campaigns/requests/new'); //fails

module.exports = routes;

如何配置路由以允许刷新自定义路由?

2 个答案:

答案 0 :(得分:3)

正如Canaan已经提到的,您的服务器不知道您创建的路由,因此会引发mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 错误。您需要告诉您的服务器(不是Next,而是Express或404)这些位置有动态路由。 Check out the next-routes documentation了解如何实现这一目标:

http

答案 1 :(得分:2)

在浏览器中刷新路线或手动输入网址会导致浏览器向指定的网址发出网络请求。路由在您的应用程序中工作,因为防止了浏览器的默认功能,并且更新了地址栏中的路径以模拟典型的非spa Web应用程序的工作方式。如果您需要此功能,那么正确的方法是在您的后端的所有路由上返回index.html文件。如果您没有后端,则可以为某些静态主机提供解决方法。 Here是一种使路由与github页面一起工作的方法。