Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

107
Vistas
Angular2 y expreso

Estoy usando la aplicación Angular2 con Express.

Tengo esta url /v2/tickets?filterId=321 . Al volver a cargar la página, la URL se cambia a /v2/tickets/?filterId=321 . Esto rompe mi enrutamiento Angular2.

En las llamadas de red de Chrome, veo que se lanza 301.

Esta es la configuración de mi servidor simple:

 app.use('/v2', express.static(path.join(__dirname + '/dist'))); app.use('/v2/*', express.static(path.join(__dirname + '/dist')));

¿Alguna idea? ¿Por qué ocurre esta redirección y cómo puedo evitarla?

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El redict ocurre porque el redict es el predeterminado en serve-static . Puede deshabilitarlo con express.static('dir', { redirect: false }) pero luego no se pudo encontrar /v2/tickets y devuelve 404. Por ejemplo, express-static tiene el mismo comportamiento.

¿Tiene un conjunto base (como <base href="/v2"> ) y devuelve el index.html para todo lo que no es su ruta api como

 app.get('/v2/*', (req, res) => { res.sendFile(path.join(__dirname, 'dist/index.html')) })

porque no sé cómo podría funcionar esto con el código que ha publicado.

Aparte de eso, el redict no sería un problema si no usara parámetros de URL, porque angular eliminaría la barra diagonal automáticamente. Si /v2/tickets/321 también funcionara, esta sería la solución más fácil con una URL más atractiva.
Si necesita el parámetro url y quiere usar express y serve-static, tal vez sería más fácil agregar una barra inclinada final a su ruta en el enrutamiento.

Personalmente, prefiero tener un nginx para los archivos estáticos, porque es más rápido, tiene mejor almacenamiento en caché, más opciones... y reenvía todas las solicitudes de API a un nodo como

 location /api { proxy_pass http://api; } location / { try_files $uri /index.html; }
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda