[eggjs/egg]egg.js部署单页应用问题

2025-11-04 545 views
9

用egg.js部署Vue开发的单页应用,在所有路由的后面,用通配符,将所有未匹配的路由指向index.html,但是前面的get请求不能成功。

app.router.get('/*', controller.webController.index);

这一行放在最后面

回答

9

试试这个 自定义 404 响应

8

404 不是干这事的。

请提供可复现方式,怀疑是你路由配置错误

8

@atian25 路由配置很简单,就跟上面写的那一句类似,我有点发现原因了,可能是我还用了一个httpProxy:

'use strict'; const proxy = require('http-proxy-middleware'); const c2k = require('koa2-connect');

module.exports = (options, app) => { return async function httpProxy(ctx, next) { const { logger, request } = ctx; const path = request.originalUrl || request.url; if (path.includes(options.backendApiPrefix)) { c2k(proxy(options.backendApiPrefix, { target: ..., onProxyReq: function onProxyReq(proxyReq) { // ... }, onProxyRes(proxyRes, req, res) { // ... }, }))(ctx, next); } await next();

}; };

3

@atian25 我的请求能代理过去,响应也能到onProxyRes,但是配了 app.router.get('/*', controller.webController.index); 我要代理的get请求就无法正常的回到浏览器了。

0

1.提供复现的完整仓库 2.贴代码的话,建议格式化一下