सीएसएस यूआरएल में रिश्तेदार / निरपेक्ष पथ का उपयोग कैसे करें?


86

मेरे पास एक उत्पादन और विकास सर्वर है। समस्या निर्देशिका संरचना है।

विकास:

  • http://dev.com/subdir/images/image.jpg
  • http://dev.com/subdir/resources/css/style.css

उत्पादन:

  • http://live.com/images/image.jpg
  • http://live.com/resources/css/style.css

मेरे पास एक फ़ोल्डर style.cssमें कैसे हो सकता है cssजो दोनों सर्वरों पर background: urlसंपत्ति के लिए समान पथ का उपयोग करता है? क्या कोई चाल है जो मैं सापेक्ष पथों के साथ उपयोग कर सकता हूं?

जवाबों:


128

URL CSS फ़ाइल के स्थान के सापेक्ष है , इसलिए यह आपके लिए काम करना चाहिए:

url('../../images/image.jpg')

सापेक्ष URL दो फ़ोल्डर वापस जाता है, और फिर imagesफ़ोल्डर में - यह दोनों मामलों के लिए काम करना चाहिए, जब तक कि संरचना समान है।

से https://www.w3.org/TR/CSS1/#url :

आंशिक URL की व्याख्या स्टाइल शीट के स्रोत के सापेक्ष की जाती है, दस्तावेज़ के सापेक्ष नहीं


क्या यह काम करेगा अगर मुझे 2 कदम पीछे जाना है (उत्तर को अपडेट किया है) url (..//// छवियाँ / image.jpg)?
nascar

@anothershrubery - क्षमा करें, मेरा पहला उदाहरण त्रुटिपूर्ण था
nascar

@danip - यह काम करना चाहिए, लेकिन आपके पास दो कदम नहीं हैं http://domain.com/css/style.css। मुझे यकीन नहीं है कि वहाँ क्या किया जा सकता है ... संपादित करें: - हाँ, इसे अद्यतन संरचना के साथ काम करना चाहिए, मैंने जवाब अपडेट किया है (बस एक और ../, ऐसा लगता है)।
कोबी

9

व्यक्तिगत रूप से, मैं इसे .htaccess फ़ाइल में ठीक करूँगा। आपके पास उस तक पहुंच होनी चाहिए।

अपने सीएसएस URL को इस तरह परिभाषित करें:

url(/image_dir/image.png);

अपनी .htacess फ़ाइल में, डालें:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^image_dir/(.*) subdir/images/$1

या

RewriteRule ^image_dir/(.*) images/$1

साइट पर निर्भर करता है।


2

मुझे एक ही समस्या थी ... हर बार जब मैं अपनी सीएसएस प्रकाशित करना चाहता था .. मुझे एक खोज / प्रतिस्थापन करना था .. और रिश्तेदार पथ मेरे लिए या तो काम नहीं करेगा क्योंकि सापेक्ष पथ देव से उत्पादन तक अलग थे।

अंत में खोज / प्रतिस्थापन करने से थक गया और मैंने एक गतिशील सीएसएस बनाया, (जैसे www.mysite.com/css.php) यह वही है लेकिन अब मैं सीएसएस में अपने php स्थिरांक का उपयोग कर सकता हूं। किसी दिन जैसे

.icon{
  background-image:url('<?php echo BASE_IMAGE;?>icon.png');
}

और इसे गतिशील बनाने के लिए एक बुरा विचार नहीं है क्योंकि अब मैं अपने देव सर्वर पर मूल प्रारूप को खोए बिना YUI कंप्रेसर का उपयोग करके इसे संकुचित कर सकता हूं।

शुभ लाभ!


13
phpसवाल पर कोई टैग नहीं है ! ओपी शायद php का उपयोग नहीं कर रहा है।
बज्ज़

6
सिर्फ एक उदाहरण है .. आप php, asp, jsp का उपयोग कर सकते हैं .. विचार एक ही है
happyontbelong

6
यह स्थिर भी हो सकता है।
jcuenod

3
इसके अलावा अगर यह एक सीएसएस फ़ाइल में है, तो <?php **** ?>अभ्यस्त प्रक्रिया नहीं की जाएगी
JD Vangsness
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.