2012-07-28 8 views
19

मेरी साइट Google वेबफोंट के साथ अच्छी तरह से काम कर रही है जब तक उपयोगकर्ता साइट के SSL भाग को हिट नहीं करता है।Google वेब फोंट और एसएसएल त्रुटि

उस बिंदु पर, क्रोम आंशिक एन्कोडिंग त्रुटि फेंकता है, और मेरा cufon मेनू इसे कर्नाई को नुकसान पहुंचाता है।

मैं इस सीएसएस के साथ अपने webfont शामिल कर रहा हूँ:

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

मेरे js सांत्वना तो मुझे इस त्रुटि देता है:

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

कोई भी विचार कैसे मैं गूगल फोंट एसएसएल मजबूर करने के लिए मिल सकता है?

+1

मुझे भी इस समस्या का सामना करना पड़ रहा है। मैंने लिंक href = "// fonts.googleapis.com/css?family=Gudea" rel = "स्टाइलशीट" प्रकार = "टेक्स्ट/सीएसएस" और लिंक href = "https://fonts.googleapis.com/ के साथ परीक्षण किया है सीएसएस? परिवार = गुडिया "rel =" स्टाइलशीट "प्रकार =" पाठ/सीएसएस "लेकिन समस्या एक ही –

उत्तर

76

क्या आपने यूआरएल में // के साथ https:// को बदलने का प्रयास किया है? अनुरोध स्वचालित प्रोटोकॉल स्वचालित रूप से उपयोग करना चाहिए।

+6

सरल और प्रभावी है। महान उत्तर और स्वीकार करने के लायक है। – Chris

+0

ऐसा लगता है कि HTTP पर लोडिंग फोंट अब समर्थित नहीं है, मैं केवल क्रोम में HTTPS पर लोड करने के लिए फोंट प्राप्त कर सकता हूं भले ही पूरी साइट केवल HTTP है। –

+0

यह भी जांचें कि सर्वर द्वारा संभावित रूप से वापस किए गए किसी भी कैश को हेडर को वापस कर दिया गया है; आईईएक्सप्लोरर इसके साथ अच्छी तरह से सामना नहीं कर रहा है और फोंट नहीं दिखाएगा: [यहां देखें] (http://stackoverflow.com/a/43094126/1767316) – user1767316

3

Google फोंट को लोड करने के लिए जो गैर-सुरक्षित, और एसएसएल मोड में काम करेंगे, (अपने सीएसएस के अंदर https: // को कॉल करने के लिए जो कुछ मिला है उसे हटाएं):

<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> 

मेरे उदाहरण में, मैं Droid Serif फ़ॉन्ट का उपयोग कर रहा हूं, इसलिए इसे अपने साथ स्वैप करें।

You can read more on this here.

+1

नीचे दिए गए लंदनियम के उत्तर को एक बहुत ही सरल समाधान के लिए देखें जो काम करता है और मान्य है। – Chris

4

अपने HTML पृष्ठ (या टेम्पलेट) पर इस लाइन का पता लगाने:

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

और इस के लिए इसे बदल:

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

यह सरल परिवर्तन आपके ब्राउज़र फोन कर देगा लागू मोड में Google फ़ॉन्ट पेज (HTTP बनाम HTTPS)।

आनंद लें!

+0

मैं क्रोम v49 (गैर https स्थानीय पृष्ठ) में // // का उपयोग करने में सक्षम नहीं था .. https हालांकि काम किया। Google इन सभी कॉलों पर https का उपयोग करने की अनुशंसा करता है, और कुछ कारणों से https: // के साथ चिपकना संभवतः – Ross

+0

उन दावों के लिए कोई उद्धरण है? – TonyG

संबंधित मुद्दे