नोट: मैं का उपयोग कर डेटा gzip करने के बारे में एक और इसी तरह सवाल था रूबी के zlib
जो तकनीकी रूप से जवाब था और मैं महसूस नहीं किया था मैं सवाल विकसित हो रहा शुरू कर सकता है, क्योंकि यह इतना हालांकि उत्तर दिया गया था यह सवाल संबंधित है यह वही नहीं है ...रूबी के साथ सिनात्रा में gzip संपीड़न का उपयोग
निम्नलिखित कोड (मुझे विश्वास है) एक स्थिर सीएसएस फ़ाइल GZIP'ing है और result
चर में परिणाम संग्रहीत कर रहा है। लेकिन मैं इस अर्थ में इसके साथ क्या कर सकता हूं: मैं इस डेटा को ब्राउज़र पर वापस कैसे भेज सकता हूं ताकि इसे मूल फ़ाइल आकार के बजाय GZIP'ed के रूप में पहचाना जा सके (उदाहरण के लिए जब मेरे वाईएसएलओ स्कोर की जांच हो तो मैं इसे सही ढंग से चिह्नित करना चाहता हूं मुझे यह सुनिश्चित करने के लिए कि मैं जीजेआईपी स्थिर संसाधन)।
z = Zlib::Deflate.new(6, 31)
z.deflate(File.read('public/Assets/Styles/build.css'))
z.flush
@result = z.finish # could also of done: result = z.deflate(file, Zlib::FINISH)
z.close
... नोट करने के लिए एक बात मेरे पिछले सवाल में प्रतिवादी ने स्पष्ट किया कि कि Zlib::Deflate.deflate
gzip एन्कोड डेटा का उत्पादन नहीं होगा। यह केवल zlib-encoded डेटा उत्पन्न करेगा और इसलिए मुझे का उपयोग windowBits
के साथ एक gzip स्ट्रीम शुरू करने के लिए 31 के बराबर तर्क के साथ करना होगा।
लेकिन जब मैं इस कोड को चलाता हूं तो मुझे वास्तव में नहीं पता कि result
चर और इसकी सामग्री के साथ क्या करना है। ब्राउज़र पर GZIP एन्कोडेड स्थैतिक संसाधन (जैसे जावास्क्रिप्ट, सीएसएस, एचटीएमएल इत्यादि) भेजने के बारे में इंटरनेट पर कोई जानकारी नहीं है (जो मुझे मिल सकती है), इससे पेज लोड तेज हो जाता है। ऐसा लगता है कि मैंने पढ़ा हर रूबी लेख रेल पर रूबी का उपयोग कर किसी पर आधारित है !!
किसी भी मदद की वास्तव में सराहना की।
विस्तृत प्रतिक्रिया और उदाहरण कोड के लिए धन्यवाद। मैंने आपकी टिप्पणियों को बोर्ड पर ले लिया और इसके बजाए 'रैक :: डिफ्लेटर' का इस्तेमाल किया। सचमुच मेरी आवेदन फ़ाइल के शीर्ष पर कोड की एक पंक्ति और यह काम करता है: nginx विकल्प – Integralist
+1 का उपयोग करें क्योंकि यह क्लाइंट ने निर्दिष्ट किया है कि वे क्या स्वीकार कर सकते हैं, इस पर ध्यान दिए बिना यह gzipped सामग्री की सेवा करेगा 'स्वीकृति-एन्कोडिंग' हेडर। यह निश्चित रूप से, बुरा अभ्यास है और इससे बचा जाना चाहिए। –
के लिए रैक :: Deflater' – aidan