Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

109
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!