diff --git a/docker-compose.yml b/docker-compose.yml index 1ddbe3c..f70b0fc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -24,7 +24,8 @@ services: - "traefik.http.services.${APP_NAME}.loadbalancer.server.port=3000" # Router 1: Public PWA resources (no auth) - Higher priority - - "traefik.http.routers.${APP_NAME}-public.rule=Host(`${APP_DOMAIN}`) && (PathPrefix(`/manifest.webmanifest`) || PathPrefix(`/sw.js`) || PathPrefix(`/workbox-`) || PathPrefix(`/icon-`) || PathPrefix(`/apple-touch-icon`) || PathPrefix(`/favicon.ico`) || PathPrefix(`/robots.txt`) || PathPrefix(`/offline.html`) || PathPrefix(`/api/_nuxt_icon/`))" + # Incluye .well-known para scope extensions + - "traefik.http.routers.${APP_NAME}-public.rule=Host(`${APP_DOMAIN}`) && (PathPrefix(`/.well-known`) || PathPrefix(`/manifest.webmanifest`) || PathPrefix(`/sw.js`) || PathPrefix(`/workbox-`) || PathPrefix(`/icon-`) || PathPrefix(`/apple-touch-icon`) || PathPrefix(`/favicon.ico`) || PathPrefix(`/robots.txt`) || PathPrefix(`/offline.html`) || PathPrefix(`/api/_nuxt_icon/`))" - "traefik.http.routers.${APP_NAME}-public.entrypoints=websecure" - "traefik.http.routers.${APP_NAME}-public.tls.certresolver=letsencrypt" - "traefik.http.routers.${APP_NAME}-public.priority=100" diff --git a/nuxt4/nuxt.config.ts b/nuxt4/nuxt.config.ts index 692b941..19b8b0c 100644 --- a/nuxt4/nuxt.config.ts +++ b/nuxt4/nuxt.config.ts @@ -34,6 +34,8 @@ export default defineNuxtConfig({ orientation: 'portrait', scope: '/', start_url: '/', + // Capturar enlaces dentro de la app + capture_links: 'existing-client-navigate', icons: [ { src: '/icon-192x192.png', diff --git a/nuxt4/public/.well-known/web-app-origin-association b/nuxt4/public/.well-known/web-app-origin-association new file mode 100644 index 0000000..2ff6292 --- /dev/null +++ b/nuxt4/public/.well-known/web-app-origin-association @@ -0,0 +1,10 @@ +{ + "web_apps": [ + { + "manifest": "https://inicio.nucleoriofrio.com/manifest.webmanifest", + "details": { + "paths": ["/*"] + } + } + ] +}