2012-05-03 10 views
9

पृष्ठभूमिफ़ायर्फ़ॉक्स और क्रोम

मेरे अनुभव के अनुसार जब मेरे ubuntu कार्य केंद्र सक्रिय निर्देशिका वाले डोमेन पर कॉन्फ़िगर किया गया है द्वारा यूआरएल में \ (बैकस्लैश) के उपचार के विभिन्न व्यवहार, मेरे लिए बनाए गए उपयोगकर्ता नाम के अनुसार किया गया था निम्नलिखित पैटर्न।

domain_name \ user_name

userdir लिनक्स पर अपाचे की एक्सटेंशन का उपयोग करना होम निर्देशिका में public_html तक पहुँचने के लिए URL में उपयोगकर्ता नाम का उपयोग करने की आवश्यकता होगी।

http://localhost/~domain_name\user_name

समस्या एक:

क्रोम धर्मान्तरित सभी बैकस्लैश '\' '/' URL के वर्णों स्लेश अग्रेषित करने के लिए और उसके एवज में यूआरएल के रूप में हो जाता है इसके तहत पूरी तरह से अलग है और हमेशा परिणाम नहीं मिला

http://localhost/~domain_name/user_name

फ़ायरफ़ॉक्स दूसरी ओर वापस स्लेश अभीष्ट लक्ष्य के लिए इतना http अनुरोध वेब सर्वर द्वारा परोसा जाता है अग्रेषित करने के लिए स्लेश परिवर्तित नहीं करता है पर।

Common solution is to encode back slash in %5C. 

समस्या बी:

अगर हम CSS @import निर्माण में (रास्ते में \युक्त) ने वही रास्ता उपयोग करते हैं, HTTP GET के रूप में सीएसएस फ़ाइल के आयात की प्रक्रिया का अनुरोध रिपोर्टिंग द्वारा विफल 404 त्रुटि और 404 त्रुटि में उल्लिखित यूआरएल \ की उपस्थिति को याद करता है। इसका मतलब है कि \ इसके खिलाफ जीईटी अनुरोध करने के लिए पहले यूआरएल से हटा दिया गया है।

यह व्यवहार फ़ायरफ़ॉक्स और क्रोम में आम है। लेकिन उनके पास असामान्य समाधान

फ़ायरफ़ॉक्स को सीएसएस आयात प्रक्रिया में काम करने के लिए वापस स्लैश से बचने की आवश्यकता है।

@import url ("http://localhost/~domain_name\\user_name/path/to/css");

सामान्य रूप से क्रोम को एन्कोडेड बैक स्लैश समाधान की आवश्यकता होती है।

@import url ("http://localhost/~domain_name%5Cuser_name/path/to/css");

  • \ URL में से निपटने के लिए एकीकृत समाधान क्या है?
  • उपयोगकर्ता नाम में प्रदर्शित होने के लिए \ से बचने का कोई तरीका है?

उत्तर

7

यूआरएल में बैकस्लैश से निपटने के लिए एकीकृत समाधान% 5C का उपयोग करना है। आरएफसी 23 9 6 ने उस चरित्र को यूआरएल में बिल्कुल अनुमति नहीं दी है (इसलिए उस चरित्र के बारे में कोई व्यवहार सिर्फ त्रुटि-वसूली व्यवहार था)। आरएफसी 3 9 86 इसे अनुमति देता है, लेकिन व्यापक रूप से कार्यान्वित नहीं किया जाता है, कम से कम नहीं क्योंकि यह मौजूदा यूआरएल प्रोसेसर के साथ बिल्कुल संगत नहीं है।

क्रोम, विशेष रूप से, आईई के समान ही काम करता है: मान लीजिए कि जब भी आप बैकस्लैश टाइप करते हैं, तो आपको लगता है कि विंडोज़ पथ पथ यही है।

+0

लेकिन यह फ़ायरफ़ॉक्स के लिए css @import url() केस में काम नहीं करेगा। –

+0

क्यों नहीं? जहां तक ​​मैं कह सकता हूं काम करना चाहिए। –

+0

लेकिन मैंने इसका परीक्षण किया। –

3

फ़ायरफ़ॉक्स में स्लेश एड-ऑन का उपयोग करने में आपकी सहायता करने का प्रयास करें। यहां एक लिंक है।

Slashy

+0

आपने अभी मुझे बचाया ... :) +1 – slayedbylucifer

2

यह बैकस्लैश ऑटो रूपांतरण मुद्दा क्रोम संस्करण> = 53.0.2785.116 में तय किया है।

अब बैकस्लैश का इलाज % 5C के रूप में ठीक से किया जाता है।

+0

मुझे यकीन है कि यह नहीं है। पता बार में टाइप करते समय या 'window.location = "";' DevTools 'कंसोल में उपयोग करते समय यह क्रोम 62.0.3202.8 9 में होता है। – bit2shift

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