2010-04-27 33 views
71

Estoy agregando un archivo CSS externo y un archivo JS externo a mis encabezados y pies de página. Al cargar una página HTTPS, algunos navegadores se quejan de que estoy cargando contenido no seguro.Cómo incluir archivos CSS y JS a través de HTTPS cuando sea necesario?

¿Hay una manera fácil de hacer que el navegador cargue el contenido externo a través de HTTPS cuando la página en sí misma es HTTPS?

Respuesta

116

Use rutas relativas al protocolo.

lo tanto no

<link rel="stylesheet" href="http://example.com/style.css"> 
<script src="http://example.com/script.js"></script> 

pero también lo

<link rel="stylesheet" href="//example.com/style.css"> 
<script src="//example.com/script.js"></script> 

entonces se usará el protocolo de la página principal.

+0

http://webdosanddonts.com/dont-use-protocol -relative-paths-to-css-files –

+4

Es un problema específico del navegador.No hay otras maneras de resolver esto de una manera sólida que hacerlo completamente en el lado del servidor utilizando las capacidades de la tecnología de visualización en cuestión. – BalusC

+1

Como nota adicional, si se ocupa de las [entradas de la memoria caché correcta] (http://stackoverflow.com/questions/49547/making-sure-a-web-page-is-not-cached-across-all- navegadores/2068407 # 2068407) en los encabezados de respuesta, los navegadores no lo descargarán en las solicitudes posteriores hasta que se llegue al vencimiento, incluido IE. – BalusC

0

Si utiliza rutas relativas (y el contenido está en el mismo dominio) a continuación, el contenido debe utilizar cualquier protocolo de la página se solicita en.

Sin embargo, si usted va a través de dominio a un CDN o sitio de recursos, o si necesita utilizar rutas de acceso absolutas, necesitará usar la secuencia de comandos del lado del servidor para cambiar los enlaces, o siempre use https: //

+0

Estamos yendo a través del dominio. ¿Usaría javascript para escribir el trabajo de inclusión? Si document.location.protocol then ... –

+0

Intenta usar js insertando marcado en la etiqueta HEAD, quizás un documento simple.write dentro de una etiqueta de script ...

Cuestiones relacionadas