Доступ к S3 img из обычного javascript при использовании django storages

У меня есть довольно базовая проблема, которую я не могу решить. Я обслуживаю статические файлы с S3, используя Django storages. В моем шаблоне я настроил источник img следующим образом:

"{% static 'fun_share/img/logo/logo.svg' %}"

при наличии

STATIC_URL = "/static/"

Хранилища Django обрабатывают фактический "перевод" img src, т.е. становится https://my-bucket.amazonaws.com/static/fun_share/img/logo/logo.svg?..... Пока все хорошо.

Теперь я хочу изменить src изображения с простого javascript на другое изображение (logo-2.svg).

Каким образом лучше всего обращаться к ведру s3 с правильным URL (также учитывая секреты и ключи)?

Я бы ожидал

 const logo = document.querySelector(".navbar-brand img");
 logo.src = "/static/fun_share/img/logo/logo-2.svg";

чтобы работать, но, похоже, это не так, поскольку вызов js осуществляется на сам сервер, а не перенаправляется на s3 bucket.

Любая помощь будет очень признательна.

Вы можете преобразовать текущий источник в URL, а затем изменить pathname, чтобы получить URL с тем же хостом, параметрами запроса и т.д.

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()
Вернуться на верх