-
Notifications
You must be signed in to change notification settings - Fork 2.7k
umi-plugin-routes 路由过滤功能无效 #686
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
路由不存在 / 是因为缺少了index.js。在开发的404页面里面可见这些被过滤的路由,但是手动点击跳转,其实还是到开发的404页面,所以这个逻辑是正确的,可以参考例子routes |
@xiaohuoni 我知道 / 路由需要增加 pages/index.js 或者 pages/index/index.js。但这里反映的问题是:
而事实上基于umi.js的官方demo,components | services | models ,这些目录作为系统的保留目录,应该默认就屏蔽不作为二级路由渲染的。 |
@xiaohuoni 在 sorrycc/blog#66 中所给出的 |
你说的是umi-antd-admin吗? |
@xiaohuoni 是的。实际访问 8000 时候会导到404,但在404页面渲染出来的列表(就是我最初反应的那个)中还是会显示出来。而这里的404页面由于是 umi-build-dev 插件生成的,用户在此不可控。 |
那就没有问题了。就是这个逻辑。这个只是开发的404页面。 |
@xiaohuoni 我遇到类似的问题 .urirc.js配置如下: 另外,page.js是不是有什么特殊的约定,如果我在目录下面增加了page.js,那么动态路由就不生效了 |
我也遇到相同的问题。
我看这个项目也是这么配的,但是这个就可以…… https://github.com/umijs/umi-antd-admin |
@JevonYang 开发模式下是这样的,线上版本就是你自己的404 |
* fix: 更改 request interceptors 的格式为 umi-request 的拦截器格式 * docs: 同步文档 * docs: 同步文档 * fix: ts提示用 axios 格式的拦截器,同时兼容 umiRequest 的拦截器。 * docs: 更新 request 文档 * docs: 文档规范 umi@3 umi@4 * Update docs/docs/max/request.md Co-authored-by: chencheng (云谦) <sorrycc@gmail.com>
* fix: 更改 request interceptors 的格式为 umi-request 的拦截器格式 * docs: 同步文档 * docs: 同步文档 * fix: ts提示用 axios 格式的拦截器,同时兼容 umiRequest 的拦截器。 * docs: 更新 request 文档 * docs: 文档规范 umi@3 umi@4 * Update docs/docs/max/request.md Co-authored-by: chencheng (云谦) <sorrycc@gmail.com>
1. 配置
根据官方路由配置说明在 .umirc.js 中添加“umi-plugin-routes” 相关设置后
2.异常信息
对于开发模式中不存在的路由所返回的页面列表中仍将显示过滤掉的路由:

3.原因分析
在Umi.js生成生成的 /pages/.umi/router.js 文件中向 umi-build-dev/lib/plugins/404/NotFound.js 组件所注入的routes信息并未完全排除所过滤的路由
4.临时解决方案
方案1:修改NotFound页面
在./umi/pages/router.js 文件所引用的 NotFound.js文件中对routes信息过滤,修改 _default函数如下:
方案2:手工配置根目录 .umirc.js 中的路由信息,无法享受pages中目录即路由的便捷性。
此处配置发现另一BUG:component的相对路径要以 page/.umi/ 目录为准(../pages/yourRouter),而不是.umirc.js文件所在的根目录(./src/page/yourRouter/)
The text was updated successfully, but these errors were encountered: