जड़ के सापेक्ष लिंक होने?


161

क्या रूट निर्देशिका के सापेक्ष किसी पृष्ठ पर सभी लिंक होने का कोई तरीका है?

उदाहरण के लिए, www.example.com/fruits/apples/apple.htmlमेरे पास एक लिंक हो सकता है:

<a href="fruits/index.html">Back to Fruits List</a>

क्या यह लिंक इशारा करेगा www.example.com/fruits/apples/fruits/index.htmlया www.example.com/fruits/index.html? यदि पहला है, तो क्या यह 2 के बजाय इंगित करने का एक तरीका है?

जवाबों:


293

एक रूट-रिलेटिव URL एक /चरित्र के साथ शुरू होता है , जैसे कुछ देखने के लिए <a href="https://stackoverflow.com/directoryInRoot/fileName.html">link text</a>

आपके द्वारा पोस्ट किया गया लिंक: <a href="fruits/index.html">Back to Fruits List</a>नाम की एक निर्देशिका में स्थित एक html फ़ाइल से लिंक हो fruitsरहा है, निर्देशिका उसी निर्देशिका में HTML पृष्ठ के रूप में है जिसमें यह लिंक दिखाई देता है।

इसे रूट-रिलेटिव URL बनाने के लिए, इसे इसमें बदलें:

<a href="/fruits/index.html">Back to Fruits List</a>

ओपी से, सवाल के जवाब में संपादित

तो / करना www.example.com के सापेक्ष बना देगा, क्या यह निर्दिष्ट करने का कोई तरीका है कि रूट क्या है, जैसे कि अगर मैं चाहता हूं कि रूट www.example.com/fruit www.example.com/fruit/ में हो सेब / apple.html?

हां, URL को hrefया srcविशेषताओं में, /मूल निर्देशिका के सापेक्ष पथ बना देगा। उदाहरण के लिए, html पृष्ठ पर दिया www.example.com/fruits/apples.html, aके href="https://stackoverflow.com/vegetables/carrots.html"पृष्ठ पर इच्छा लिंक www.example.com/vegetables/carrots.html

baseटैग तत्व आपको इस पृष्ठ की आधार-uri निर्दिष्ट करने के लिए (हालांकि अनुमति देता है baseटैग पर जोड़ा जाना करने के लिए होगा हर , पेज, जिसमें यह जरूरी हो गया था एक विशिष्ट आधार का उपयोग करने के लिए इस बात के लिए मैं बस डब्ल्यू 3 के उदाहरण का हवाला देते होगी:

उदाहरण के लिए, निम्नलिखित आधार घोषणा और A घोषणा को देखते हुए:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
 <HEAD>
   <TITLE>Our Products</TITLE>
   <BASE href="http://www.aviary.com/products/intro.html">
 </HEAD>

 <BODY>
   <P>Have you seen our <A href="../cages/birds.gif">Bird Cages</A>?
 </BODY>
</HTML>

रिश्तेदार URI "../cages/birds.gif" को हल करेगा:

http://www.aviary.com/cages/birds.gif

उदाहरण से उद्धृत: http://www.w3.org/TR/html401/struct/links.html#h-12.4

सुझाया गया पठन:


1
तो /यह करने के सापेक्ष बना देगा www.example.com, क्या यह निर्दिष्ट करने का एक तरीका है कि जड़ क्या है, उदाहरण के लिए यदि मैं चाहता हूं कि जड़ क्या www.example.com/fruitsहै www.example.com/fruits/apples/apple.html?
अपवोट

1
वहाँ गतिशील रूप से इसे खोजने के लिए एक रास्ता है? कुछ इस तरह ~ .NET में? क्या होगा यदि प्रत्येक वातावरण में आपके पास अलग-अलग फ़ोल्डर का नाम हो?
क्रेमन लालोवा

21

उपयोग

<a href="/fruits/index.html">Back to Fruits List</a>

या

<a href="../index.html">Back to Fruits List</a>

1
..पाठ ने काम किया लेकिन / CSS फ़ाइल में इसका उपयोग करके अभिव्यक्ति वेब में मेरे लिए काम नहीं किया। (फाइल / डायरेक्टरी और रेफरेंस /
क्ले निकोल्स


3

आप से URL बना रहे हैं सर्वर साइड एक के ASP.NET अनुप्रयोग , और एक के लिए अपनी वेबसाइट की तैनाती वर्चुअल निर्देशिका अपनी वेबसाइट में (जैसे APP2) यानी http://www.yourwebsite.com/app2/

तो बस डालें

<base href="~/" />

टाइटल टैग के बाद।

इसलिए जब भी आप रूट रिश्तेदार का उपयोग करें उदा

<a href="/Accounts/Login"/> 

" http://www.yourwebsite.com/app2/Accounts/Login " पर हल होगा

इस तरह से आप हमेशा अपनी फ़ाइलों को अपेक्षाकृत-बिल्कुल इंगित कर सकते हैं;)

मेरे लिए यह सबसे लचीला समाधान है।


2
आपका जवाब बस काम नहीं करता है। ASP.NET समाधान में सर्वर-साइड पर "टिल्ड स्लैश" काम करता है। यह प्रश्न सर्वर-साइड ASP.NET समाधानों के बारे में नहीं है।
एंडर्स टोर्ब्लाड

1
मैं आपका सिद्धांत देखता हूं, लेकिन यह काम करता है, (व्यवहार में और सिद्धांत दोनों में) सर्वर HTML को जेनरेट करते समय आपके एप्लिकेशन की जड़ जो भी है, उसके साथ "टिल्ड स्लैश" को बदल देता है। क्या आपने इसे पहले आज़माया है?
ए-मजीद

बेशक मैंने इसे आजमाया। वेब सर्वर किसी एप्लिकेशन के रूट के साथ tilde स्लैश को प्रतिस्थापित नहीं करते हैं। केवल ASP.NET एप्लिकेशन ही ऐसा करते हैं। अन्य वातावरणों में, "एप्लिकेशन" के रूप में ऐसी कोई अवधारणा नहीं है।
एंडर्स टॉर्बलाड

नहीं, मुझे यह नहीं कहना चाहिए कि मैं ASP.NET का उपयोग नहीं करता। आपने उस धारणा को बनाया, लेकिन आपके उत्तर में धारणा का उल्लेख नहीं किया। साथ ही, सवाल सर्वर रनटाइम वातावरण के बारे में कुछ भी उल्लेख नहीं करता है, इसलिए आपको यह नहीं मानना ​​चाहिए था कि प्रश्न ASP.NET के बारे में था। यदि आप StackOverflow पर उत्तर देते हैं, तो कृपया सुनिश्चित करें कि आप प्रश्न का उत्तर देते हैं - और कुछ अन्य प्रश्न नहीं। साथ ही, I DID का कहना है कि यह प्रश्न सर्वर-साइड ASP.NET समाधानों के बारे में नहीं है।
एंडर्स टॉर्बलाड

मेरे लिए काम किया जब मैंने जावास्क्रिप्ट से लिंक प्रदान किए
बालाजी बिराजदार

0

छवि टैग को URL देने के लिए जो images/रूट में डायरेक्टरी को पसंद करता है

`logo.png`

आपको srcURL /निम्नानुसार शुरू करना चाहिए :

<img src="/images/logo.png"/>

यह कोड बिना किसी परेशानी के किसी भी निर्देशिका में काम करता है, भले ही आप branches/europe/about.phpअभी भी लोगो में हैं।


0

इस कोड का उपयोग करें "./" सर्वर पर रूट के रूप में यह मेरे लिए काम करता है

<a href="./fruits/index.html">Back to Fruits List</a>

लेकिन जब आप स्थानीय मशीन पर होते हैं तो रूट कोड के रूप में निम्नलिखित कोड "../" का उपयोग करते हैं

<a href="../fruits/index.html">Back to Fruits List</a>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.