Доступ к 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()