Динамический абсолютный путь CSS с HTTTPs

#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, вам не нужно снова прикасаться к этому модулю.