CRMEB官方
2020-03-19 06:44:24
本帖最后由 qingxiking 于 2020-3-19 14:44 编辑
@官方
版本:3.1.3
翻车场景:在 config/app.php 中的 // 应用映射(自动多应用模式有效) 'app_map' => ['*'=>'', 'api'=>'api', 'admin'=>'admin','wap'=>'wap'],
如果把后台访问修改为 admintest ,如:
'app_map' => ['*'=>'', 'api'=>'api', 'admintest'=>'admin','wap'=>'wap'],
那后台入口就变为了: /admintest
问题:后台的商品编辑、详情等,会访问报错
原因:访问的是 /admi/xxxx ,也就是说后台没用上map的模块原名
解决思路:app/admin/view/public/frame_head.php 中[size=9pt]window.[/size][size=9pt]module[/size][size=9pt]=[/size][size=9pt]"[/size][size=9pt][/size][size=9pt]getName[/size][size=9pt]()[/size][size=9pt];?>[/size][size=9pt]"[/size][size=9pt];[/size]
方法一:可直接通过config获取到app_map,然后通过 http->getName 找到模块的重命名。目前除了JS的URL方法,没找到有别的地方使用window.module;
方法二:为了安全起见,可加一个变量,如 [size=9pt]window.[/size][size=9pt]module_app_name[/size] ,把值赋值给它,另外还需要改 public/system/js/layuiList.js 的 [size=9pt]var [/size][size=9pt]m = opt.[/size][size=9pt]m [/size][size=9pt]|| window.[/size][size=9pt]module[/size][size=9pt],[/size] 改为 [size=9pt]var [/size][size=9pt]m = opt.[/size][size=9pt]m [/size][size=9pt]|| window.[/size][size=9pt]module_app_name[/size][size=9pt],[/size]
代码:[size=9pt]window.[/size][size=9pt]module_app_name [/size][size=9pt]= [/size][size=9pt]"[/size][size=9pt][/size][size=9pt]getName[/size][size=9pt]()]) ? [/size][size=9pt]$app_map_flip[/size][size=9pt][app([/size][size=9pt]'http'[/size][size=9pt])->[/size][size=9pt]getName[/size][size=9pt]()] : app([/size][size=9pt]'http'[/size][size=9pt])->[/size][size=9pt]getName[/size][size=9pt]()[/size][size=9pt];?>[/size][size=9pt]"[/size][size=9pt];[/size]
希望官方可以解决,并用更优雅的方式 解决
CRMEB官方 最后编辑于2022-07-28 18:42:26
快捷回复
{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}
作者 管理员 企业
{{itemf.name}}
{{itemc.user_info.nickname}}
{{itemc.user_name}}
回复 {{itemc.comment_user_info.nickname}}
{{itemf.name}}