首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态路由未能在浏览器中刷新?

动态路由未能在浏览器中刷新?
EN

Stack Overflow用户
提问于 2018-03-23 02:06:57
回答 2查看 3.3K关注 0票数 2

我有一个反应应用程序使用下一个路线。导航按预期工作,但使用Page does not exist自定义路由404刷新页面。

这种情况只发生在包含参数的动态路由中。

routes.js:

代码语言:javascript
复制
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;

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-23 12:27:25

正如迦南已经提到的,您的服务器不知道您创建的路由,因此抛出一个404错误。您需要告诉您的服务器(不是Next,而是Express或http),在这些位置有动态路由。为了了解如何实现这一点,请使用文档

代码语言:javascript
复制
// server.js
const next = require('next')
const routes = require('./routes') // <- your routes file
const app = next({dev: process.env.NODE_ENV !== 'production'})
const handler = routes.getRequestHandler(app)

// With express
const express = require('express')
app.prepare().then(() => {
  express()
    .use(handler) // <- this line is important
    .listen(3000)
})
票数 3
EN

Stack Overflow用户

发布于 2018-03-23 02:23:18

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49441303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档