Bladeren bron

fix(@vben/layouts): respect base URL when opening route in new window (#6583)

Previously, the generated URL for opening routes in a new window did not include the router base,
which led to incorrect paths when the app was deployed under a subdirectory (e.g., /admin/).
This change ensures that the resolved path includes the configured base by using
router.resolve(path).href.
leo 1 maand geleden
bovenliggende
commit
b93e22c45a
1 gewijzigde bestanden met toevoegingen van 5 en 1 verwijderingen
  1. 5 1
      packages/effects/layouts/src/basic/menu/use-navigation.ts

+ 5 - 1
packages/effects/layouts/src/basic/menu/use-navigation.ts

@@ -32,6 +32,10 @@ function useNavigation() {
     return route?.meta?.openInNewWindow ?? false;
   };
 
+  const resolveHref = (path: string): string => {
+    return router.resolve(path).href;
+  };
+
   const navigation = async (path: string) => {
     try {
       const route = routeMetaMap.get(path);
@@ -40,7 +44,7 @@ function useNavigation() {
       if (isHttpUrl(path)) {
         openWindow(path, { target: '_blank' });
       } else if (openInNewWindow) {
-        openRouteInNewWindow(path);
+        openRouteInNewWindow(resolveHref(path));
       } else {
         await router.push({
           path,