En mi sitio web de Hugo, baseUrl está configurado en: website.com/variable.
Si un elemento de imagen está en .html (< img src="/images/image.png" >), se aplica la baseUrl y la URL final es esta: website.com/variable/images/image.png/
Si un elemento de imagen está en .js (img.src = "/images/image.png"), la baseUrl no se aplica y la URL final es incorrecta: website.com/images/image.png/
Traté de agregar un formato de salida personalizado para js en config.toml, pero no funcionó: [mediaTypes."application/javascript"] sufijos = ["js"]
¿Hay alguna forma de acceder a las variables de plantilla en archivos .js?
Para responder a su pregunta: "¿Hay alguna forma de acceder a las variables de plantilla en archivos .js?" No, mientras Hugo construye, entonces los códigos de plantilla de Hugo ya no existen. JS se ejecuta en el sitio construido.
Para responder a su otra pregunta: "Si un elemento de imagen está en .html (< img src="/images/image.png" >), se aplica la baseUrl y la URL final es esta: website.com/variable/images/ imagen.png/"
"Si un elemento de imagen está en .js (img.src = "/images/image.png"), la baseUrl no se aplica y la URL final es incorrecta: website.com/images/image.png/"
Le sugiero que use el procesamiento de imágenes y genere los enlaces completos, y luego puede acceder/sin tratar con sus enlaces de imágenes, pero necesitaría más datos sobre su configuración. Esperemos que eso te dé suficiente con lo que trabajar.
Puedes hacer algo como esto:
{{ $js := resources.Get "js/main.js" | js.Build (dict "params" (dict "api" "https://example.org/api")) }}Luego en su archivo JS:
import * as params from '@params';Por ejemplo, tengo esto en uno de mis sitios:
{{- $msftclarityjs := resources.Get "js/analytics-msftclarity.js" | js.Build ( dict "params" ( dict "msftclarityid" $msftclarityid ) ) -}}Luego, en el archivo analytics-msftclarift.js tengo esto:
import * as params from '@params'; … (window, document, "clarity", "script", params.msftclarityid);Consulte Hugo docs Creación de JavaScript para obtener más información.