2013-07-04 7 views
11

मेरी समस्या मैच के लक्षण इस सवाल काफी वास्तव में की लंबाई मैच के लिए: Changed static files are cropped/padded to the new size and served the old - Fedoraसर्वर स्टैटिक फ़ाइलें के पुराने संस्करणों में सेवारत है, लेकिन छंटनी या गद्देदार नए संस्करणों

जब भी मैं अपने स्टैटिक फ़ाइलें में परिवर्तन कर (जैसे। जेएस और। सीएसएस), वे परिवर्तन सेवा फ़ाइल में दिखाई नहीं देते हैं। हालांकि, अगर मेरे परिवर्तन फ़ाइल का कारण लंबाई को बदलने के लिए है, तो सेवा की फ़ाइल नई लंबाई से मेल करता है:

  • अगर मैं स्थिर फ़ाइल में कहीं से भी वर्णों को हटाने के लिए, तो सेवा की फ़ाइल अंत में छंटनी की है उन कई पात्रों द्वारा।
  • यदि मैं स्थैतिक फ़ाइल में कहीं भी अक्षर जोड़ता हूं, तो सेवा की गई फ़ाइल अंत में कई (वह यू + एफएफएफडी) वर्णों के साथ गद्देदार है।

कारण से जुड़ा हुआ उत्तर मेरी समस्या का समाधान नहीं करता है कि मैं अपाचे का उपयोग नहीं कर रहा हूं। मैं हेरोोकू के लिए एक पायथन वेब ऐप लिख रहा हूं, इसलिए मैं बंदूक और फ्लास्क (और इसलिए वेर्कजेग) का उपयोग कर रहा हूं। लिंक किए गए उत्तर का कहना है कि अपाचे में प्रेषक को अक्षम करने से समस्या हल हो गई है, इसलिए मैंने this page के अनुसार 'USE_X_SENDFILE' चर को गलत पर सेट करने का प्रयास किया, लेकिन इससे मदद नहीं मिली। मैंने कुछ प्रकार के कैशिंग को होने से रोकने के लिए एक और प्रयास में 'एस END_FILE_MAX_AGE_DEFAULT' को भी सेट किया है, और इससे कोई मदद नहीं मिली है।

यदि यह स्पष्ट नहीं है, तो मैं वास्तव में वेब सर्वर को कॉन्फ़िगर करने के बारे में बहुत कुछ नहीं जानता, इसलिए प्रासंगिक Google हिट चलाने के बाद, मुझे नुकसान हो रहा है कि यह क्या हो सकता है। मदद?

+1

यह वर्चुअलबॉक्स 'sendfile' समस्या है। यह भी देखें http://serverfault.com/questions/269420/disable-caching-when-serving-static-files-with-nginx-for- विकास और http://stackoverflow.com/questions/6886606/changed-static- फाइल-फसल-पैड-टू-द-न्यू-साइज-एंड-सेवारत-द-ओल्ड-फेड और http://abitwiser.wordpress.com/2011/02/24/virtualbox-hates-sendfile/ – Alp

+1

I एक ही समस्या देखें। फ्लास्क के साथ विकास सर्वर चलाते समय यह मौजूद नहीं है, केवल बंदूक का उपयोग करते समय। मैं वर्चुअलबॉक्स वीएम का प्रबंधन करने के लिए वग्रेंट का उपयोग कर रहा हूं। मैं nginx या अपाचे नहीं चला रहा हूं, यह सुनिश्चित नहीं है कि बंदूकधारी में प्रेषण अक्षम करने के लिए कोई विकल्प है (यदि यह एक विकल्प भी है)। – Alex

उत्तर

4

Virtualbox hates sendfile. यदि आप इसे बंद करते हैं तो इसे काम करना चाहिए।

उदाहरण के लिए nginx में आपको sendfile: off; जोड़ने की आवश्यकता होगी। अपाचे में यह सिर्फ EnableSendfile off है।

+1

आपने मुझे 10 से अधिक वर्षों में उम्र बढ़ने से रोक दिया है! –

2

अंत में यह पता चला कि यह शायद वीएम मुद्दों के कारण हो रहा था। प्रश्न में कोड एक विंडोज ड्राइव पर स्थित था, लेकिन एक लिनक्स वीएम के भीतर से सेवा की जा रही थी जो एक साझा निर्देशिका के माध्यम से कोड तक पहुंच रहा था। शेयर को याद करना समस्या को ठीक करना प्रतीत होता था (हालांकि आवश्यक रूप से विश्वसनीय नहीं है)।

+0

मेरे पास एक ही समस्या है। एक आवृत्ति वीएम एक nginx सर्वर चलाता है जो मेजबान पर स्थित एक स्थिर फ़ाइल सर्वर। जब फ़ाइल बदलती है, तो ट्रिम/पैड जैसा आप चाहते हैं। क्या आप शेयर को याद किए बिना एक आसान फिक्स के बारे में जानते हैं? – Alp

+2

ने मेरे nginx कॉन्फ़िगरेशन में 'sendfile: off;' जोड़कर इसे ठीक किया क्योंकि [वर्चुअलबॉक्स sendfile से नफरत करता है] (http://abitwiser.wordpress.com/2011/02/24/virtualbox-hates-sendfile/) – Alp

+0

@Alp: क्या आप इसे एक उत्तर के रूप में पोस्ट करते हैं? मुझे एक ही समस्या थी और यह हल हो गया। – graup

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