micro-zoe / micro-app

A simple, efficient and powerful micro front-end framework. 一款简约、高效、功能强大的微前端框架
https://micro-zoe.github.io/micro-app/
MIT License
5.58k stars 566 forks source link

求解:nginx配置下页面F5刷新后只有子应用的页面,主应用的导航都没有了 #910

Open chgyan opened 1 year ago

chgyan commented 1 year ago

求解大概的原因或解决思路。

现状如下: 应用均是vue2的,主应用路由history,子应用map。 nginx配置后正常使用都没有问题,按浏览器的F5后页面只有子应用的内容(主应用的导航菜单没有了)。在开发环境下没有此问题。 刷新前后地址有一点变化。(#前面多了/) 刷新之前: http://127.0.0.1/child/basic#/index 刷新之后: http://127.0.0.1/child/basic/#/index nginx配置如下: server { listen 80; server_name 127.0.0.1;

location / {
        root /soft/nginx-1.19.0-2/coder;
        index index.php index.html index.htm;
        add_header Access-Control-Allow-Origin *;
        if ( $request_uri ~* ^.+.(js|css|jpg|png|gif|tif|dpg|jpeg|eot|svg|ttf|woff|json|mp4|rmvb|rm|wmv|avi|3gp)$ ){
          add_header Cache-Control max-age=7776000;
          add_header Access-Control-Allow-Origin *;
        }
}

# 主应用main-vue2
location /main {
        root /soft/nginx-1.19.0-2/corder;
        add_header Access-Control-Allow-Origin *;
        if ( $request_uri ~* ^.+.(js|css|jpg|png|gif|tif|dpg|jpeg|eot|svg|ttf|woff|json|mp4|rmvb|rm|wmv|avi|3gp)$ ){
          add_header Cache-Control max-age=7776000;
          add_header Access-Control-Allow-Origin *;
        }
        try_files $uri $uri/ /main/index.html;
}

# 子应用child-vue2
    location /child/basic {
        alias /soft/nginx-1.19.0-2/corder/child/basic;
        add_header Access-Control-Allow-Origin *;
        if ( $request_uri ~* ^.+.(js|css|jpg|png|gif|tif|dpg|jpeg|eot|svg|ttf|woff|json|mp4|rmvb|rm|wmv|avi|3gp)$ ){
          add_header Cache-Control max-age=7776000;
          add_header Access-Control-Allow-Origin *;
        }
        try_files $uri $uri/ /index.html;
    }

}

raoenhui commented 1 year ago

刷新之前 http://127.0.0.1/child/basic#/index 这个地址是怎么产生的?

bailicangdu commented 1 year ago

主应用在/main文件夹下,正常渲染应该是/main开头,类似这样 http://127.0.0.1/main/child/basic#/index,问题应该是渲染子应用后地址被子应用修改了,导致 /main丢失

chgyan commented 1 year ago

刷新之前 http://127.0.0.1/child/basic#/index 这个地址是怎么产生的?

/index是子应用第一个菜单的配置路由。进入child/basic默认进入第一个路由

chgyan commented 1 year ago

主应用在/main文件夹下,正常渲染应该是/main开头,类似这样 http://127.0.0.1/main/child/basic#/index,问题应该是渲染子应用后地址被子应用修改了,导致 /main丢失

结合回复又看了给的样例demo,大概理解是什么意思了,我们应该在主应用中增加一个子应用的处理路由,谢谢。