2014-05-01 12 views
9

के साथ Google वेब फोंट का उपयोग कैसे कर सकता हूं मैं phantomjs संस्करण 1.9.7 का उपयोग कर रहा हूं जो मुझे विश्वास है कि वेब फोंट का समर्थन करना है। मैंने Google वेब फोंट के साथ फ़ॉन्ट डाला है, हालांकि जब मैं एक स्क्रैरेग्राब स्वचालित करता हूं तो यह सिर्फ मेरे फॉलबैक फ़ॉन्ट को प्रदर्शित करता है। वेबफॉन्ट मेरे सभी ब्राउज़रों में ठीक दिख रहा है। क्या इसके लिए कोई कामकाज है?मैं phantomjs

+0

Am मेरी सीएसएस को यह जोड़ने: यूआरएल @import (http://fonts.googleapis.com/css?family=Open+Sans); – alexrogins

+0

मैं सिर्फ विंडोज पर [बूटस्ट्रैप फ़ॉन्ट्स] (http://getbootstrap.com/components/) की कोशिश की phantomjs संस्करण 1.9.7 के साथ और कब्जा काम किया। शायद आप इसे एक ही तरीके से शामिल करने का प्रयास कर सकते हैं, क्योंकि कई फॉलबैक हैं। –

उत्तर

8

मैंने कई बार इस मुद्दे के साथ संघर्ष किया है। खैर, इस विवाद के लिए एक आसान कारण है: उपयोगकर्ता-एजेंट!

Google फ़ॉन्ट्स जैसी कुछ सेवाएं उपयोगकर्ता-एजेंट के आधार पर अलग-अलग सीएसएस सामग्री लौट रही हैं। जब आप एक वेबपृष्ठ कहते हैं जिसमें Google फ़ॉन्ट्स डिफ़ॉल्ट फ़ैंटॉमजेएस उपयोगकर्ता-एजेंट शामिल हैं, तो Google टीटीएफ संस्करण को वापस कर देगा जो फ़ैंटॉमजेस में समर्थित है।

हालांकि, यदि आप कस्टम उपयोगकर्ता एजेंट (क्रोम, एफएफ, आदि) सेट करते हैं, तो Google फ़ॉन्ट .woff2 संस्करण वापस कर देगा। .woff2 फ़ैंटॉमजेएस 2.x में समर्थित नहीं है। जाहिर है, फोंट लोड नहीं होने जा रहे हैं।

तो, उन उपयोगकर्ताओं के लिए जो सामान्य उपयोगकर्ता-एजेंट सेट किए बिना फ़ैंटॉमजे का परीक्षण कर रहे हैं, Google फ़ॉन्ट्स काम कर रहा है। यदि वे उदाहरण के लिए Google क्रोम उपयोगकर्ता-एजेंट सेट करते हैं, तो यह काम नहीं करता है।

  1. से बचें एक कस्टम उपयोगकर्ता-एजेंट की स्थापना करता है, तो यह संभव है:

    तो, आप दो विकल्प हैं।

  2. Google फ़ॉन्ट्स जैसे गूंगा-स्मार्ट फ़ॉन्ट प्रदाताओं का उपयोग करने से बचें जो सीएसएस में सभी फ़ॉन्ट संस्करणों को आउटपुट नहीं कर रहा है और ब्राउजर को यह तय करने दें कि इसकी क्या ज़रूरत है।
+3

मैं इसे फैंटॉमजेएस 2.1.1 में भी सत्यापित करने में सक्षम था। डिफ़ॉल्ट 'Mozilla/5.0 की यूए (Macintosh; इंटेल मैक ओएस एक्स) AppleWebKit/534.34 (KHTML, छिपकली की तरह) PhantomJS/2.1.1 (विकास) सफारी/534.34' ('क्रोम' अनुपस्थित के साथ) के रूप में आप वर्णित काम करने के लिए लगता है ऊपर। अच्छा पकड़ा। – Drakes

+0

अभी के लिए (2017) स्थिति विपरीत हो गई: Google फ़ॉन्ट्स डिफ़ॉल्ट UA 'उपयोगकर्ता-एजेंट के लिए '.woff2' फ़ॉन्ट्स लौटाता है: मोज़िला/5.0 (विंडोज एनटी 6.2; WOW64) ऐप्पलवेबकिट/538.1 (केएचटीएम, जैसे गेको) फैंटॉमजेएस/2.1। 1 सफारी/538.1'। तो समस्या को ठीक करने के लिए किसी भी मानक उपयोगकर्ता-एजेंट को सेट नहीं किया जाना चाहिए, उदाहरण के लिए केवल 'PhantomJS/2.1.1' की तरह। – shytikov

+0

@shytikov उत्तर में यह बिल्कुल बताया गया है। तो कुछ भी नहीं बदला है। – Kousha

4

मुझे विश्वास है कि आपकी धारणा गलत है :-) प्रेत की 1.9.x श्रृंखला अभी भी पुराने वेबकिट कोड पर आधारित है, जो लोग सभी के साथ वेब फ़ॉन्ट समस्याओं की रिपोर्ट कर रहे हैं।

अच्छी खबर यह है कि प्रेत 2.0 का तकनीकी पूर्वावलोकन जारी होने वाला है; https://github.com/ariya/phantomjs/wiki/PhantomJS-2 का पालन करने के लिए सबसे अच्छी जगह होने का इरादा है। और, स्मृति से, किसी ने इसका उपयोग कर वेब फोंट के साथ सफलता की सूचना दी (लेकिन मुझे उस पर गलत हो सकता है क्योंकि मेलिंग सूची अभिलेखागार की त्वरित खोज ने वेब फोंट का काम करते हुए एक निश्चित संदेश नहीं दिया ... लेकिन वे निश्चित रूप से चाहिए)।

बीटीडब्ल्यू, SlimerJS फ़ायरफ़ॉक्स के गेको इंजन के आधार पर लगभग ड्रॉप-इन प्रतिस्थापन है, और वेब फोंट का समर्थन करता है (हालांकि कोने के मामलों में कुछ समस्याएं, आईआईआरसी)।

+1

"मुझे विश्वास है ..." एक उदाहरण या अग्रणी आपको लगता है कि करने के लिए इस मददगार होगा कुछ करने के लिए भी एक लिंक। यहां एक बंद समस्या है: https://github.com/ariya/phantomjs/issues/10592। हालांकि, यह एक परेशानी की समस्या है। काम करने का एक उदाहरण सबसे उपयोगी होगा। –

+0

@ प्रेत 1.x श्रृंखला में समर्थित नहीं किया जा रहा st.derrick वेब फोंट कुछ मैंने देखा प्रेत मेलिंग सूची पर उल्लेख किया था। (SlimerJS में वेब फोंट के साथ कोने मामले समस्याओं Slimer मेलिंग सूची पर उल्लेख किया गया था।) –

+0

@ st.derrick बस उस बग मुद्दे के माध्यम से पढ़ें। मुझे यह याद आया कि मुझे यह कैसे याद आया - एक बड़ी गड़बड़! कुछ लोग अभी भी कह रहे हैं कि यह फैंटॉमजेएस 2.0 के साथ भी भरोसेमंद काम नहीं कर रहा है - ऐसा लगता है कि उबंटू पैकेज पर कुछ जटिल निर्भरताएं हो सकती हैं? –

0

मुझे फ़ैंटॉमजेएस 2.1.1 के साथ एक ही समस्या थी। मेरे मामले में मैं प्रॉक्सी के तहत काम कर रहा था जो फ़ैंटॉमजेएस को Google से फ़ॉन्ट लोड करने से रोक रहा था। एक खुले नेटवर्क से कनेक्ट करने के बाद यह सही ढंग से प्रस्तुत किया गया।

0

मैंने यहां सूचीबद्ध सभी सुधारों का कोई फायदा नहीं लिया, लेकिन यहां एक काम है। किसी भी विकल्प ने मेरे लिए यह हल किया।

पहला विकल्प: फ़ैंटॉमजेएस चला रहे स्थानीय कंप्यूटर पर लापता वेब फ़ॉन्ट इंस्टॉल करें। Google सहित अधिकांश वेब फ़ॉन्ट प्रदाता आपको स्थानीय इंस्टॉल के लिए आसानी से फ़ॉन्ट डाउनलोड करने की अनुमति देते हैं। लक्ष्य यूआरएल में कोई बदलाव की जरूरत नहीं है।

दूसरा: मैं जिन साइटों पर नियंत्रण रखता हूं, मैं लिंक टैग को विभाजित करके हल करने में सक्षम था।

यह बदलें:

<link href='//fonts.googleapis.com/css?family=Roboto:400,500,700|Open+Sans:400italic,700italic,400,700' rel='stylesheet' type='text/css'> 

करने के लिए:

<link href='//fonts.googleapis.com/css?family=Roboto:400,500,700' rel='stylesheet' type='text/css'> 
<link href='//fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700' rel='stylesheet' type='text/css'> 

मैं जानता हूँ कि यह एक आदर्श समाधान लेकिन या तो एक काम करता है नहीं है, यह इस पर निर्भर करता आप लक्ष्य को संशोधित कर सकते हैं अगर यूआरएल।