2012-07-28 17 views
19

Mi sitio funciona bien con Google webfonts HASTA que el usuario acceda a la parte SSL del sitio.Google fuentes web y error de SSL

En ese punto, cromo arroja el error de codificación parcial, y mi menú cufon pierde su interletraje.

estoy incluyendo mi Fuente Web con este CSS:

@font-face { 
src: local('Lusitana'), url(https://themes.googleusercontent.com/static/fonts/lusitana 
/v1/tAIvAkRzqMJf8Y4fM1R7PXYhjbSpvc47ee6xR_80Hnw.woff) format('woff'); 
} 

Mi consola JS luego me da este error:

[blocked] The page at https://domain.com/ecommerce.php ran insecure content from http://fonts.googleapis.com/css?family=Lusitana:regular,700&subset=latin .

Alguna idea de cómo puedo conseguir fuentes de Google para forzar SSL?

+1

Estoy experimentando este problema también. Lo he probado con el enlace href = "// fonts.googleapis.com/css?family=Gudea" rel = "stylesheet" type = "text/css" y enlace href = "https://fonts.googleapis.com/ css? family = Gudea "rel =" stylesheet "type =" text/css "pero el problema es el mismo –

Respuesta

76

¿Ha intentado reemplazar https:// con // en la url? La solicitud debe usar el protocolo correcto automáticamente.

+6

Simple y efectivo. Gran respuesta y merece ser aceptado. – Chris

+0

Parece que ya no se admite cargar fuentes a través de HTTP, solo puedo obtener fuentes para cargar a través de HTTPS en Chrome, incluso si todo el sitio es solo HTTP. –

+0

Verifique también si el servidor ha devuelto alguna cabecera invalidante de caché; IExplorer no funciona bien y no muestra las fuentes: [ver aquí] (http://stackoverflow.com/a/43094126/1767316) – user1767316

3

Para cargar fuentes de Google que van a trabajar en no seguro, y el modo SSL, pruebe lo siguiente en su encabezado de la página - (y eliminar lo que tienes ahí llamando a un https: // dentro de la CSS):

<script type="text/javascript"> 
    WebFontConfig = { google: { families: [ 'Droid+Serif::latin' ] } }; 
    (function() { 
    var wf = document.createElement('script'); 
    wf.src = ('https:' == document.location.protocol ? 'https' : 'http') + 
    '://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js'; 
    wf.type = 'text/javascript'; 
    wf.async = 'true'; 
    var s = document.getElementsByTagName('script')[0]; 
    s.parentNode.insertBefore(wf, s); 
})(); 
</script> 

En mi ejemplo, estoy usando la fuente Droid Serif, así que cambie eso con el suyo.

You can read more on this here.

+1

Consulte la respuesta de @ londonium a continuación para obtener una solución mucho más simple que funciona y es válida. – Chris

4

localice esta línea en su página HTML (o plantilla):

<link href='http://fonts.googleapis.com/css?family=Dosis:400,700' rel='stylesheet' type='text/css'> 

y el cambio a esto:

<link href='//fonts.googleapis.com/css?family=Dosis:400,700' rel='stylesheet' type='text/css'> 

Este simple cambio hará que el navegador llame al Página de fuente de Google en el modo aplicable (HTTP vs HTTPS).

¡Disfrútalo!

+0

No pude usar // en chrome v49 (página local no https). Sin embargo, https funcionó. Google recomienda usar https en todas estas llamadas, y probablemente sea mejor seguir con https: // por algunas razones – Ross

+0

¿Alguna mención de esas afirmaciones? – TonyG