Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

185
Visualizações
Sitio de Gatsby, guión no disponible en la solicitud de la primera página con Helmet

Tengo un sitio de Gatsby al que estoy tratando de agregar un widget js de terceros, pero por alguna extraña razón, solo se cargará si actualizo la página manualmente. En la carga de la primera página, es como si no existiera en absoluto, no hay errores en las herramientas de desarrollo, nada ... pero si actualizo la página, aparece. ¿Es casi como si fuera una carga diferida? ¿Hay alguna forma de forzar la carga?

Revisé las pestañas de elements , console y network en las herramientas de desarrollo, pero no hay nada que indique ningún error. Los elements muestran las etiquetas que esperaría, console no muestra nada y network todo aparece con 200.

¿Podría ser un problema con Gatsby y/o Helmet, podría serlo, pero no creo que sea un problema con el widget en sí (es un tercero, no tengo control sobre él, consulte el último párrafo)?

 <Helmet script={[ { type: 'text/javascript', src: '//widget-url.com/path/to/jsfile.min.js', }, { type: 'text/javascript', innerHTML: ` (function() { var widget = Stuff.happens.here(); widget.Initialise(); })(); `, }, ]} />

En el cuerpo tengo entonces:

 <div id='widget-id'></div>

Cosas que he tratado de intentar entender dónde está el problema :

  • Como mencioné, tengo que forzar la actualización de la página donde se encuentra el widget. Si fuerzo la actualización de cualquier otra página, no ayuda. Entonces, algo que probé es: en lugar de solo incluir el JS en el encabezado de la página en cuestión, lo incluiría en TODAS las páginas. Pero esto no ha hecho ninguna diferencia.

  • También intenté agregar el widget a un archivo html independiente simple, el widget se carga sin problemas. ¿Lo que me lleva a pensar que probablemente no sea un problema de widget?

No sé a dónde ir desde aquí :(

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El problema es que está señalando un elemento DOM que puede o no representarse en el momento en que solicita el script.

En tu caso, yo probaría:

 <Helmet> <script async defer src="//widget-url.com/path/to/jsfile.min.js" /> <script async defer> {` (function() { var widget = Stuff.happens.here(); widget.Initialise(); })(); `} </script> </Helmet>

O usando una de las múltiples API de representación del lado del servidor. onRenderBody debería funcionar:

 // gatsby-ssr.js import React from "react" export const onRenderBody = ({ setHeadComponents, setPostBodyComponents }) => { setHeadComponents([ <script src="//widget-url.com/path/to/jsfile.min.js" type="text/javascript" async />, <script dangerouslySetInnerHTML={{ __html: ` (function() { var widget = Stuff.happens.here(); widget.Initialise(); })(); `, }} />, ]) }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda