Tengo un problema bastante básico que no puedo resolver. Estoy sirviendo archivos estáticos de S3 usando almacenamientos de Django. En mi plantilla, configuro la fuente de img de esta manera:
"{% static 'fun_share/img/logo/logo.svg' %}"mientras tengo
STATIC_URL = "/static/"Los almacenamientos de Django manejan la "traducción" real de img src, es decir, se convierte en https://my-bucket.amazonaws.com/static/fun_share/img/logo/logo.svg?.... . Hasta aquí todo bien.
Ahora, quiero cambiar la imagen src de javascript simple a una imagen diferente (logo-2.svg).
¿Cuál es la mejor manera de manejar la llamada al depósito s3 con la URL adecuada (también teniendo en cuenta los secretos y las claves)?
Yo esperaría
const logo = document.querySelector(".navbar-brand img"); logo.src = "/static/fun_share/img/logo/logo-2.svg";funcione, pero ese no parece ser el caso, ya que la llamada js se realiza al servidor en sí, no se redirige al depósito s3.
Cualquier ayuda muy apreciada.
Puede convertir la fuente actual en una URL y luego cambiar el nombre de la pathname para obtener una URL con el mismo host, parámetros de consulta, etc.
const logo = document.querySelector(".navbar-brand img"); let sourceUrl = new URL(logo.src) sourceUrl.pathname = '/static/fun_share/img/logo/logo-2.svg' logo.src = sourceUrl.toString()