Я хочу проверить, работает ли мой сайт под HTTPS из моего шаблона, чтобы я мог условно добавить S в HTTP-файлы моих внешних javascript-библиотек (а именно jQuery). Как я могу это сделать?Django: Убедитесь, что соединение защищено от шаблона?
ответ
Я не уверен, если Google сделал это в то время, я задал этот вопрос, но теперь они рекомендуют добавлять в библиотеку через
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
//
будет использовать любую схему, вы в настоящее время используется - никакого дополнительного кода или условных обозначений не требуется.
Проверьте этот запрос в поле зрения с is_secure() и отправьте его в шаблон.
Если ваши ресурсы размещены на той же машине, как вы служите запросы от, он может не нужно указать схему URL-адрес на всех:
<script src="/static/js/myfile.js" type="text/javascript"></script>
Это будет использовать тот же протокол (HTTP или HTTPS) и сервер как запрос на исходную страницу.
Edit 2 (2016):
Если вы подключаетесь к ресурсу на другом сервере, лучшим решением в настоящее время (как pointed out by mpen below) является использование относительной схемы URL:
<script src="//media.example.com/static/js/myfile.js" type="text/javascript"></script>
Это будет автоматически подключаться к серверу с помощью http или https в зависимости от подключения к текущей странице.
Обратите внимание, что это может вызвать some problems, если вам необходимо поддерживать старые браузеры.
Редактировать: Альтернативно, если вам действительно нужна информация в вашем шаблоне по какой-либо причине, вы можете add the request context processor и использовать RequestContext в ваших взглядах. Это помещает переменную request
в контекст вашего шаблона, что дает вам доступ к объекту HttpRequest
. Затем вы можете проверить, если запрос является безопасным путем проверки значения request.is_secure
Например:
<script src="http{% if request.is_secure %}s{% endif %}://media.example.com/static/js/myfile.js" type="text/javascript"></script>
Пожалуйста, обратите внимание, используя {% static %}
тег шаблона (в Django> = 1,4), который может быть сконфигурирован для размещения средств массовой информации файлы на отдельном домене или сервере. Это избавит вас от проблемы is_secure.
https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#std:templatetag-staticfiles-static
- 1. Что защищено от JWT?
- 2. Убедитесь, что соединение закрыто
- 3. Убедитесь, что параметр шаблона - это класс перечисления
- 4. Убедитесь, что перечисление соответствует определенному типу шаблона
- 5. Убедитесь, что тип возвращаемого шаблона с шаблоном
- 6. google chrome и opera продолжают говорить, что соединение не является частным или соединение не защищено
- 7. Убедитесь, что сокет закрыт.
- 8. Убедитесь, что функция предиката действительна в функции шаблона C++
- 9. Убедитесь, что соединение с базой данных psycopg2 выполнено
- 10. Обнаружение USB соединение и убедитесь, что это PC
- 11. Убедитесь, что соединение с POSPrinter подключено через COM
- 12. Соединение потеряно. Убедитесь, что Qlik Sense правильно работает
- 13. Как приложение IBM MobileFirst защищено от фишинга?
- 14. Убедитесь, что переменная заканчивается
- 15. Убедитесь, что пользователь вошел
- 16. Убедитесь, что шаблон не соответствует
- 17. Django: что делает «загрузка» (в файле шаблона)?
- 18. mail_admins, вызывающий соединение, отказался от Django/Apache2?
- 19. Убедитесь, что существует DocumentFile
- 20. Убедитесь, что данные загружены
- 21. Убедитесь, что задача прерывается
- 22. Убедитесь, что URI действителен
- 23. Убедитесь, что ACRA работает
- 24. Убедитесь, что _tmkdir преуспевает
- 25. Убедитесь, что служба связана
- 26. Убедитесь, что ArrayCollection пуст
- 27. Убедитесь, что кнопка нажата
- 28. Убедитесь, что нет перекрытия
- 29. Убедитесь, что загрузка завершена
- 30. Убедитесь, что процесс запущен
Это также может быть обработано промежуточным программным обеспечением: [http://stackoverflow.com/questions/7566112/how-to-implement-httpsssl-middleware-in-django/37599845#37599845](http://stackoverflow.com/questions/7566112/how-to-implementation-httpsssl-middleware-in-django/37599845 # 37599845) – 2016-06-02 18:45:50
@LakeDupin Это промежуточное программное обеспечение предназначено для пересылки на HTTPS, что немного больше, чем я просил, но внутри лежит секретный соус : `request.is_secure()`. Однако это [уже опубликовано] (http://stackoverflow.com/a/4360699/65387). – mpen 2016-06-02 19:58:07
LakeDupin lol =) Прохладный Я счастлив, что у вас есть ответ, который работает !!! Просто хотел предложить решение промежуточного программного обеспечения, если это было более подходящим для кого-то еще в будущем. Счастливое кодирование. – 2016-06-03 18:08:35