[eggjs/egg]如何设置静态页面的启动链接为跟目录,而不是public?

2024-08-05 216 views
2

比如我现在用egg server启动了一个服务,并且服务地址是 http://127.0.0.1:9010

我现在用antd pro v5做了个后台管理系统页面,因为这个框架里 build后 ,api访问方式是 默认的url+api接口的形式,比如当前打开页面的服务是http://127.0.0.1:3000 ,我在这个框架里和后端链接的接口就是 http://127.0.0.1:3000/api/currentUser 。 既然这样我就访问不到 9010下的接口,因此我想把 antd pro v5 build后的页面,放在egg里,作为静态页面启动。但是目前egg里的静态路径对我来说,存在问题,因为他,多套一层public,导致我的资源路径错误。如下图

image

image 我想通过http://127.0.0.1:9010/ 直接访问我的静态页面,而不是 http://127.0.0.1:9010/public/index.html

下图是我 egg程序目录 image image

antd pro里关于这个问题的iuuse https://github.com/ant-design/ant-design-pro/issues/7092

相关环境信息
  • 操作系统:win7
  • Node 版本:v12.14.0
  • Egg 版本:^1.10.1

回答

6

文件放置的目录和最终 url 的 prefix 是两回事。

看下 egg-static 的配置即可。

2

自己加个路由映射就好了。

7

egg-example有这个案例么,我对这个不太熟,不是主方向

1

看下 Router 文档就知道了。

4

看下 Router 文档,都是一个一个设置的,不能通配设置么,因为我也不知道antd pro里一共有多少个路由页面。

4

用通配符 *,比如

// router.js

module.exports = app => {
  app.get('*', app.controller.home.test);
}
2

@JasinYip 改 prefix 后其实已经都是 / 了,他这里只是想 index.html 也映射到 / 而已,来个 redirect 之类的就好了。

8

请问大佬,这个该怎么通配设置,不会有bug,

7

这是你不会用,不是 bug。类似 app.router.redirect('/index.html', '/') 之类的,自己补下看 Router 文档搞吧。

6

确实是我不会用这个, 谢谢大佬指点。

app.router.redirect('/', '/index.html'); 这样,暂时可以了。