• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

384
Vistas
@Nuxtjs/la ruta del módulo proxy no se reescribe en la actualización de la página

Estoy trabajando en una aplicación nuxt que usa axios para obtener datos de una API en el backend usando asyncData . También tengo el @nuxtjs/proxy agregado como una dependencia que representa todas mis llamadas a la API.

Cada vez que navego a la página usando un enlace en el lado del cliente, el proxy funciona según lo previsto y elimina el prefijo /api/ de la ruta antes de enviar la solicitud a la API de back-end.

Ejemplo:

  1. Solicitudes de clientes: /api/data
  2. Tiras de proxy /api/ de la solicitud
  3. Ruta resultante a la API: http://example.com/data

Sin embargo, el problema con el que me encuentro es en las actualizaciones de la página. El módulo proxy no puede quitar /api/ de la ruta, lo que da como resultado una ruta que no existe en la API

Ejemplo:

  • Ruta deseada: http://example.com/data
  • Ruta al actualizar: http://example.com/api/data

Aquí está mi nuxt.config.js simplificado:

 export default { components: true, modules: [ '@nuxtjs/axios', '@nuxtjs/proxy', ], axios: { proxy: true, }, proxy: { '/api/': { target: process.env.API_URL, pathRewrite: { '^/api/': '' } }, } }

Aquí hay una versión simplificada de mi página .Vue :

 <template> <div>This is a vue Page</div> </template> <script> export default { name: 'VuePage', async asyncData({ error, query, $axios }) { try { const { data } = await $axios.get('/api/data', { params: query }); return { data, }; } catch (err) { error({ statusCode: err.response.status, message: err.response.data.message, }); } }, }; </script>

Ya revisé otra pregunta en StackOverflow sin una buena respuesta sólida.

Se hizo una pregunta similar, Nuxt: Proxy VS Async data VS Reload page

La pregunta se marcó como respondida sin dar ninguna explicación de cómo se resolvió el problema.

about 3 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Pude encontrar una solución en forma de un complemento que parece resolver el problema.

El complemento se basa en una publicación de reddit del usuario wiked03 y está diseñado para eliminar /api/ de la solicitud

Crear el complemento

Cree una carpeta en la raíz de su proyecto llamada plugins y cree un archivo llamado axios.js

Agregue este código a ./plugins/axios.js

 // ./plugins/axios.js export default function ({ $axios }) { $axios.onRequest((config) => { if (process.server) { config.url = config.url.replace('/api/', process.env.API_URL) } }) }

Configure NUXT para usar el complemento Axios

Localice su archivo de configuración nuxt.config.js y edítelo de la siguiente manera:

 // ./nuxt.config.js export default { // ~~~~ Some Configs ~~~~ // plugins: ['~/plugins/axios.js'], }

Fuente:

  • Publicación de Reddit - wiked03
about 3 years ago · Juan Pablo Isaza 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda