Skip to content
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

主应用vue2 当子应用为vite时候,控制台加载异常会递归出大量的iframe 标签 #904

Closed
hzfvictory opened this issue Sep 14, 2023 · 12 comments
Labels
common common question iframe

Comments

@hzfvictory
Copy link

问题描述

问题的具体描述

主应用vue2 当子应用为vite时候,控制台加载异常会递归出大量的iframe 标签

复现步骤

上传截图

请上传代码截图、控制台、终端等截图以帮助我们了解您的问题。
image

复现仓库

请提供一个精简的代码仓库,然后上传到自己的 github,以帮助我们复现您的问题。

环境信息

  • micro-app版本:1.0.5 beta
  • 主应用前端框架&版本:vue2
  • 子应用前端框架&版本:vue3+vite
  • 构建工具&版本:webpack
@bailicangdu bailicangdu added the Need Reproduction 需要复现步骤 label Sep 14, 2023
@github-actions
Copy link

Hello @hzfvictory. In order to facilitate location and troubleshooting, we need you to provide a realistic GitHub repository.
您好 @hzfvictory, 为了方便定位和排查问题,我们需要您提供一个重现实例,请提供一个尽可能精简的 GitHub 仓库地址。

@hzfvictory
Copy link
Author

Hello @hzfvictory. In order to facilitate location and troubleshooting, we need you to provide a realistic GitHub repository. 您好 @hzfvictory, 为了方便定位和排查问题,我们需要您提供一个重现实例,请提供一个尽可能精简的 GitHub 仓库地址。

配置项大致如下 子应用都是vite加vue3 ,子应用的域名跟主应用公用的一个

{
        path: '/content-app/*',
        name: 'ContentApp',
        component: 'ViteTemplate',
        meta: {
          title: '内容运营',
          micro: {
            name: 'content-app',
            baseroute: '/content-app/',
            url: 'https://xxx.com/content-app/',
            preFetch: true,
            iframe: true,
          },
        },
      },
      {
        path: '/activity-app',
        name: 'ActivityApp',
        component: 'HomeApp',
        meta: {
          title: '活动运营',
        },
      },
      {
        path: '/project-app/*',
        name: 'ProjectApp',
        component: 'ViteTemplate',
        meta: {
          title: '项目运营',
          micro: {
            name: 'project-app',
            baseroute: '/project-app/',
            url: 'https://xxxx.com/project-app/',
            preFetch: true,
            iframe: true,
          },
        },
      },
      {
        path: '/strategy-app/*',
        name: 'StrategyApp',
        component: 'ViteTemplate',
        meta: {
          title: '策略中心',
          micro: {
            name: 'strategy-app',
            baseroute: '/strategy-app/',
            url: 'https://xxx.com/strategy-app/',
            preFetch: true,
            iframe: true,
          },
        },
      },

@bailicangdu bailicangdu added common common question iframe and removed Need Reproduction 需要复现步骤 labels Sep 18, 2023
@bailicangdu
Copy link
Member

基座和子应用域名相同,地址相同,基座的路由优先级高,相当于基座潜入基座,死循环了

@bailicangdu
Copy link
Member

子应用的baseroute换一个值,不要和基座相同,否则部署到线上也会出问题
image

@hzfvictory
Copy link
Author

基座和子应用域名相同,地址相同,基座的路由优先级高,相当于基座潜入基座,死循环了

对于这种情况 我改下 baseroute 就解决了吗 ;
还有我本地主子域名肯定不一样的 也出现死循环那种情况了

@hzfvictory
Copy link
Author

hzfvictory commented Sep 22, 2023

基座和子应用域名相同,地址相同,基座的路由优先级高,相当于基座潜入基座,死循环了

image
这是本地的死循环 , 我改了baseroute , 还有主子也不是同域 还是有那个问题

{
        path: '/content-app/*',
        name: 'ContentApp',
        component: 'ViteTemplate',
        meta: {
          title: '内容运营',
          micro: {
            name: 'content-app',
            baseroute: '/content-app/',
            url:'http://127.0.0.1:8836',
            preFetch: true,
            iframe: true,
          },
        },
      },
      {
        path: '/project-app/*',
        name: 'ProjectApp',
        component: 'ViteTemplate',
        meta: {
          title: '项目运营',
          micro: {
            name: 'project-app',
            baseroute: '/project-app/',
            url: 'http://127.0.0.1:8838',
            preFetch: true,
            iframe: true,
          },
        },
      },
      {
        path: '/strategy-app/*',
        name: 'StrategyApp',
        component: 'ViteTemplate',
        meta: {
          title: '策略中心',
          micro: {
            name: 'strategy-app',
            baseroute: '/strategy-app/',
            url: 'http://127.0.0.1:8839',
            preFetch: true,
            iframe: true,
          },
        },
      },
  {
        path: '/template-app/*',
        name: 'TemplateApp',
        component: 'ViteTemplate',
        meta: {
          title: '模板中心',
          micro: {
            name: 'template-app11111111',
            baseroute: '/template/',
            url: 'http://127.0.0.1:8839',
            preFetch: true,
            iframe: true,
          },
        },
      },

@bailicangdu
Copy link
Member

死循环肯定循环嵌套,路由配置有问题导致的

@hzfvictory
Copy link
Author

死循环肯定循环嵌套,路由配置有问题导致的

本地就剩这一个子应用了 ; 这个配置路由、域名 、 baseroute都不一样 也还是死循环

{
path: '/template-app/*',
name: 'TemplateApp',
component: 'ViteTemplate',
meta: {
title: '模板中心',
micro: {
name: 'ttttttemplate-app11111111',
baseroute: '/template/',
url: 'http://127.0.0.1:8839',
preFetch: true,
iframe: true,
},
},
},

@bailicangdu
Copy link
Member

能提供一个复现的demo吗

@hzfvictory
Copy link
Author

能提供一个复现的demo吗

公司代码不好弄 我把vite的预渲染关闭就正常,但是性能太拉胯了

@hzfvictory
Copy link
Author

基座和子应用域名相同,地址相同,基座的路由优先级高,相当于基座潜入基座,死循环了

<script>if(window.parent !== window) {window.stop()}</script>

看到其他issues 有提到加一行这个代码 加上后我这死循环也得到了解决。 这个是阻止iframe加载资源吗 ,或者说添加后会不会导致预加载失败

@bailicangdu
Copy link
Member

基座和子应用域名相同,地址相同,基座的路由优先级高,相当于基座潜入基座,死循环了

<script>if(window.parent !== window) {window.stop()}</script>

看到其他issues 有提到加一行这个代码 加上后我这死循环也得到了解决。 这个是阻止iframe加载资源吗 ,或者说添加后会不会导致预加载失败

阻止加载主应用资源的

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
common common question iframe
Projects
None yet
Development

No branches or pull requests

2 participants