Общий ответ: вам нужно изменить URL-адрес, который вы используете для ссылки на ваши статические файлы, на тот, который использует HTTPS. Использование относительного пути (/static/css/screen.css) вместо абсолютного URL (http: // ...) заставляет ваши медиафайлы автоматически переключаться с HTTP на HTTPS в зависимости от ссылающейся страницы, но заставляет вас при попытке служить в соответствии с лучшими практиками, описанными ниже.
Если вы используете Django 1.3 с contrib.staticfiles, может показаться, что вам просто нужно изменить настройку STATIC_URL. Если нет, вам придется обновить пути вручную (или, тем не менее, вы указываете свои статические ресурсы).
Лучшие практики для статических носителей, таких как CSS и JavaScript, требуют, чтобы вы обслуживали их с веб-сервера (не только виртуального хоста), отличного от того, который обслуживает ваши страницы Django. Идея заключается в том, что вы можете использовать веб-сервер, занимающий мало места, чтобы очень быстро обслуживать эти простые файлы. Если вы обслуживаете их с того же веб-сервера, на котором работает ваш сайт Django, то, скорее всего, загружается несколько дополнительных модулей, но они не используются для запросов, когда вы просто обслуживаете статический файл.
Поскольку вам нужно обслуживать защищенные статические файлы, у вас есть несколько вариантов:
- Вам потребуется либо получить отдельный (или подстановочный) SSL-сертификат для вашего статического файла веб-сервера.
- Con : дополнительная плата за сертификат
- Con : вам придется указать другой домен (вместо относительных путей, описанных в первом абзаце) для обслуживания ваших статических файлов из.
- Настройте SSL на обратном прокси-сервере, который обрабатывает все запросы для вашего сайта. Вы по-прежнему обслуживаете статические файлы и страницы Django с отдельных веб-серверов, но прокси-сервер знает, к какому из них подключаться, основываясь на URL-адресе или пути (например: proxy "/ static" из статического веб-сервера, все остальное из веб-сервера Django) ,
- Pro : Позволяет ли вам использовать относительные пути к вашим носителям.
- Con : Настройка дополнительных систем.