关于koa-router的redirect的问题
发布于 7 年前 作者 tangtangtangtangtang 9199 次浏览 来自 问答

1.使用重定向功能代码如下

router.redirect("/", '/back/developer/getting-started');
router.all([/\/.*/],async ctx =>{
  await ctx.render('index')
})

我在访问 localhost:5757的时候不会产生重定向的作用 如果写成如下

router.redirect("/front/developer/getting-started", '/back/developer/getting-started');
router.all([/\/.*/],async ctx =>{
  await ctx.render('index')
})

我在front/developer/getting-started的时,刷新页面可以重定向到相应页面, 也就是说"/"不起作用 以下是全部代码部分

const Koa = require('koa')
const app = new Koa()
const debug = require('debug')('koa-weapp-demo')
const bodyParser = require('koa-bodyparser')
const koaStatic = require('koa-static')
const views = require('koa-views');
const proxy = require('koa-proxy');
const config = require('./config');

const job = require("./jobs/syncMd");
job.start();

app.use(koaStatic(__dirname + '/static'));

// 解析请求体
app.use(bodyParser())

// Must be used before any router is used
app.use(views(__dirname + '/views'));


const router = require('./router')

/*
 todo特别迷!重定向又不起作用了,在前端去重定向了
 */
// router.redirect("/", '/back/developer/getting-started');
router.all('/', ctx => {
  ctx.redirect('/back/developer/getting-started');
  ctx.status = 301;
});
router.all([/\/.*/],async ctx =>{
  await ctx.render('index')
})

// 引入路由分发

app.use(router.routes())
  .use(router.allowedMethods())

// 启动程序,监听端口
console.log("listening "+config.port);
app.listen(config.port, () => debug(`listening on port ${config.port}`))

多谢

1 回复

看你贴上来的代码和用法都没啥问题。 建议看看是不是浏览器缓存影响了你的判断,301会被浏览器缓存,建议你用curl之类的测试

回到顶部