Estoy tratando de servir una aplicación de reacción (creada con craco ) desde un subdirectorio (https://my-domain/app). Siguiendo los pasos de esta guía y modificando la ubicación de nginx config a /app , obtengo el contenido estático, pero algunos fragmentos generan el siguiente error en Chrome:
Error de sintaxis no detectado: token inesperado '<' ... main.b5d3f270.chunk.js:1
Profundizando, noté que nginx devuelve una página html en lugar de un código javascript puro, y el < ofensivo es (probablemente) el comienzo de <!doctype html> :
<!doctype html> <html lang="en"> <head> ... </head> <body><noscript>You need to enable JavaScript to run this app.</noscript> ... <script> !function... </script </body>Esto solo sucede cuando sirvo la aplicación desde la subcarpeta.
¿Alguna idea de cuál es el problema?
Una pregunta similar sin respuesta se puede encontrar aquí .
De hecho, el problema estaba en la configuración de nginx, no en React. Me faltaba una directiva para decirle a nginx que ignore la parte 'aplicación' de la URL y que cargue archivos desde un directorio diferente. Haciendo lo siguiente resolvió el problema:
location /app { alias /usr/share/nginx/html; try_files $uri $uri/ /app/index.html =404; }