#css
#css
Вопрос:
У меня есть решение, которое использует AWS Cloudfront CDN для статических файлов (например, изображений, js и css). В приложении некоторые страницы используют HTTP и HTTPS запросы. Таким образом, мои файлы CSS имеют абсолютные пути к CDN и должны динамически изменять префикс HTTP на HTTPS при использовании запросов HTTPS, в противном случае HTTPS прерывается.
Например: когда я обращаюсь http://mydomain.com/page-a.php , загруженный CSS является:
body{
background: url("http://aws.cloudfront.com/image-for-page-a.png");
}
Но, когда я получаю доступ https://mydomain.com/page-a.php (обратите внимание на запрос HTTPS), CSS должен загрузить изображение в HTTPS-домен cloudfront:
body{
background: url("https://aws.cloudfront.com/image-for-page-a.png");
}
Как мне сделать так, чтобы этот запрос динамически менялся с HTTP на HTTPS в файле CSS?
Любые предложения по архитектуре приветствуются.
Спасибо.
Комментарии:
1. зачем вам нужны абсолютные пути?
Ответ №1:
Используйте относительные URL-адреса схемы:
body{
background: url("//aws.cloudfront.com/image-for-page-a.png");
}
Ответ №2:
Динамический характер нажатия URL-адреса на основе http или https должен быть прописан в вашем приложении. Вы должны выбрать http или https во время выполнения, затем подготовить css или ввести css, а затем использовать его через приложение.
Это довольно сложно или довольно обыденно реализовать. Лучший подход, который я бы предложил, — изменить ваше приложение таким образом, чтобы использовать URL-адрес на основе https.
После того, как вы это внедрили, скорее всего, ваше основное приложение может быть основано на HTTP, а js / png / media могут быть доставлены через. https. Завтра, если вы решите сделать все свои приложения основанными на https, вам не нужно снова прикасаться к этому модулю.