जवाबों:
सामान्य तौर पर, सापेक्ष URL का उपयोग करना सबसे अच्छा अभ्यास माना जाता है, ताकि आपकी वेबसाइट उस आधार URL के लिए बाध्य न हो, जहाँ वह वर्तमान में तैनात है। उदाहरण के लिए, यह स्थानीयहोस्ट के साथ-साथ आपके सार्वजनिक डोमेन पर, बिना संशोधनों के काम करने में सक्षम होगा।
यदि निरपेक्ष URL द्वारा आप स्कीम (जैसे http / https) और होस्टनाम (जैसे yourdomain.com) सहित URL का मतलब कभी ऐसा नहीं करते (स्थानीय संसाधनों के लिए) क्योंकि यह बनाए रखना और डिबग करना भयानक होगा।
मान लीजिए कि आपने अपने कोड में हर जगह निरपेक्ष URL का उपयोग किया है <img src="http://yourdomain.com/images/example.png">
। अब जब आप जा रहे हैं तो क्या होगा:
पहले उदाहरण में क्या होगा यह है कि आपको पृष्ठ पर असुरक्षित सामग्री के बारे में चेतावनी दी जाएगी। क्योंकि आपके सभी URL http (: //yourdomain.com/images/example.png) का उपयोग करने के लिए हार्डकोड किए गए हैं। और जब आपके पेज को https पर चलाने से ब्राउज़र को उम्मीद है कि जानकारी लीक होने से रोकने के लिए सभी संसाधन https पर लोड होंगे।
दूसरे उदाहरण में जब आपकी साइट को परीक्षण के वातावरण से लाइव किया जाता है तो इसका मतलब होगा कि सभी संसाधन अभी भी आपके लाइव डोमेन के बजाय आपके परीक्षण डोमेन की ओर इशारा कर रहे हैं।
इसलिए अपने प्रश्न का उत्तर देने के लिए कि क्या निरपेक्ष या सापेक्ष URL का उपयोग करना है: हमेशा सापेक्ष URL (स्थानीय संसाधनों के लिए) का उपयोग करें।
पहले हमें विभिन्न प्रकार के url पर एक नज़र डालनी चाहिए जिनका हम उपयोग कर सकते हैं:
http://yourdomain.com/images/example.png
//yourdomain.com/images/example.png
/images/example.png
images/example.png
नीचे दिए गए उदाहरणों में, मुझे लगता है कि वेबसाइट सर्वर पर निम्न स्थान से चल रही है /var/www/mywebsite
।
http://yourdomain.com/images/example.png
उपरोक्त (निरपेक्ष) URL संसाधन तक पहुँचने का प्रयास करता है /var/www/website/images/example.png
। यूआरएल के इस प्रकार के कुछ आप होता है हमेशा ऊपर उल्लिखित कारण के लिए अपनी खुद की वेबसाइट से संसाधनों अनुरोध करने के लिए बचना चाहते हैं। हालाँकि यह अपनी जगह है। उदाहरण के लिए यदि आपके पास एक वेबसाइट है http://yourdomain.com
और आप http पर बाहरी डोमेन से एक संसाधन का अनुरोध करना चाहते हैं तो आपको इसका उपयोग करना चाहिए। जैसे https://externalsite.com/path/to/image.png
।
//yourdomain.com/images/example.png
यह URL वर्तमान में उपयोग की गई योजना पर आधारित है और बाहरी संसाधनों (चित्र, जावास्क्रिप्ट आदि) सहित लगभग हमेशा उपयोग किया जाना चाहिए।
इस प्रकार का URL जो करता है, वह उस पृष्ठ की वर्तमान योजना का उपयोग करता है जो उस पर है। इसका मतलब है कि आप पृष्ठ http://yourdomain.com
पर हैं और उस पृष्ठ पर एक छवि टैग है <img src="//yourdomain.com/images/example.png">
जिस छवि का URL हल करेगा http://yourdomain.com/images/example.png
।
जब आप पृष्ठ http**s**://yourdomain.com
पर होते हैं और उस पृष्ठ पर एक छवि टैग <img src="//yourdomain.com/images/example.png">
होता है, तो छवि का URL हल हो जाएगा https://yourdomain.com/images/example.png
।
जब यह आवश्यक नहीं है, तो यह https पर संसाधनों को लोड करने से रोकता है और स्वचालित रूप से यह सुनिश्चित करता है कि जब यह आवश्यक हो तो संसाधन https पर अनुरोध किया जाता है।
उपरोक्त URL पिछले URL की तरह सर्वर साइड में भी हल होता है:
उपरोक्त (निरपेक्ष) URL संसाधन तक पहुँचने का प्रयास करता है
/var/www/website/images/example.png
।
/images/example.png
स्थानीय संसाधनों के लिए यह उन्हें संदर्भित करने का पसंदीदा तरीका है। यह /var/www/mywebsite
आपकी वेबसाइट के दस्तावेज़ रूट ( ) पर आधारित एक सापेक्ष URL है । इसका मतलब है जब आपके पास <img src="/images/example.png">
यह हमेशा के लिए हल होगा /var/www/mywebsite/images/example.png
।
यदि किसी बिंदु पर आप डोमेन स्विच करने का निर्णय लेते हैं तो यह अभी भी काम करेगा क्योंकि यह सापेक्ष है।
images/example.png
यह भी एक सापेक्ष URL है, हालांकि पिछले वाले की तुलना में थोड़ा अलग है। यह URL वर्तमान पथ के सापेक्ष है। इसका मतलब यह है कि यह उस जगह पर निर्भर करता है जहां आप साइट पर हैं।
उदाहरण के लिए जब आप पृष्ठ पर होते हैं http://yourdomain.com
और आप इसका उपयोग <img src="images/example.png">
करते हैं तो यह सर्वर पर /var/www/mywebsite/images/example.png
अपेक्षित रूप से हल होता है, हालांकि जब आपका पेज पेज पर होता है http://yourdomain.com/some/path
और आप सटीक उसी छवि टैग का उपयोग करते हैं तो यह अचानक हल हो जाएगा /var/www/mywebsite/some/path/images/example.png
।
जब आप बाहरी संसाधनों का अनुरोध करते हैं, तो आप योजना के सापेक्ष URL का उपयोग करना चाहते हैं (जब तक कि आप एक अलग योजना लागू नहीं करना चाहते) और स्थानीय संसाधनों के साथ काम करते समय आप दस्तावेज़ रूट के आधार पर सापेक्ष URL का उपयोग करना चाहते हैं।
एक उदाहरण दस्तावेज:
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
<link href='//fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700' rel='stylesheet' type='text/css'>
<link href="/style/style.css" rel="stylesheet" type="text/css" media="screen"></style>
</head>
<body>
<img src="/images/some/localimage.png" alt="">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>
</body>
</html>
इसे देखें: http://en.wikipedia.org/wiki/URI_scheme#Generic_syntax
foo://username:password@example.com:8042/over/there/index.dtb;type=animal?name=ferret#nose
\ / \________________/\_________/ \__/ \___/ \_/ \_________/ \_________/ \__/
| | | | | | | | |
| userinfo hostname port | | parameter query fragment
| \_______________________________/ \_____________|____|____________/
scheme | | | |
| authority |path|
| | |
| path interpretable as filename
| ___________|____________ |
/ \ / \ |
urn:example:animal:ferret:nose interpretable as extension
एक पूर्ण यूआरएल में "पथ" भाग से पहले के हिस्से शामिल हैं - दूसरे शब्दों में, इसमें स्कीम ( http
इन http://foo/bar/baz
) और होस्टनाम ( foo
इन http://foo/bar/baz
) (और वैकल्पिक रूप से पोर्ट, यूजरइनफो और पोर्ट) शामिल हैं।
सापेक्ष मूत्र पथ से शुरू होता है।
पूर्ण url हैं, ठीक है, निरपेक्ष: संसाधन का स्थान केवल url को देखते हुए हल किया जा सकता है। एक रिश्तेदार url अपूर्ण अर्थ में है: इसे हल करने के लिए, आपको योजना और होस्टनाम की आवश्यकता है, और ये आमतौर पर वर्तमान संदर्भ से लिए गए हैं। उदाहरण के लिए, एक वेब पेज पर
http://myhost/mypath/myresource1.html
आप ऐसा लिंक डाल सकते हैं
<a href="pages/page1">click me</a>
href
लिंक की विशेषता में, एक रिश्तेदार url का उपयोग किया जाता है, और यदि इसे क्लिक किया जाता है, तो इसे पालन करने के लिए इसे हल करना होगा। इस मामले में, वर्तमान संदर्भ है
http://myhost/mypath/myresource1.html
इसलिए, स्कीमा, होस्टनाम, और इनमें से प्रमुख पथ लिया और pages/page1
उपज के लिए तैयार किया गया है
http://myhost/mypath/pages/page1
यदि लिंक होता:
<a href="/pages/page1">click me</a>
( /
url के शुरू में प्रदर्शित होने पर ध्यान दें ) तो इसे हल कर दिया गया होगा
http://myhost/pages/page1
क्योंकि अग्रणी /
मेजबान की जड़ को इंगित करता है।
एक webapplication में, मैं आपके ऐप से संबंधित सभी संसाधनों के लिए सापेक्ष url का उपयोग करने की सलाह दूंगा। इस तरह, यदि आप पृष्ठों का स्थान बदलते हैं, तो सब कुछ काम करना जारी रखेगा। कोई भी बाहरी संसाधन (आपके आवेदन के बाहर पूरी तरह से पृष्ठ हो सकते हैं, लेकिन स्थिर सामग्री जो आप एक सामग्री वितरण नेटवर्क के माध्यम से वितरित करते हैं) को हमेशा पूर्ण यूआरएल का उपयोग करने के लिए इंगित किया जाना चाहिए: यदि आपके पास बस उन्हें खोजने का कोई तरीका नहीं है, क्योंकि वे एक अलग सर्वर पर रहते हैं।
//example.com/…
, ?foobar
और #foobar
भी सापेक्ष URL हैं और URL पथ से शुरू नहीं होते हैं (ठीक है, क्योंकि ?foobar
आप कह सकते हैं कि यह खाली पथ से शुरू होता है)।
//example.com/…
URL को सापेक्ष कहा जाता है? मेरे लिए यह नया है।
मान लें कि हम एक सबसाइट बना रहे हैं जिसकी फाइलें http://site.ru/shop फ़ोल्डर में हैं ।
Link to home page
href="http://sites.ru/shop/"
Link to the product page
href="http://sites.ru/shop/t-shirts/t-shirt-life-is-good/"
Link from home page to product page
href="t-shirts/t-shirt-life-is-good/"
Link from product page to home page
href="../../"
हालाँकि सापेक्ष URL निरपेक्ष से कम दिखते हैं, लेकिन पूर्ण URL अधिक पसंद किए जाते हैं, क्योंकि किसी लिंक का उपयोग साइट के किसी भी पृष्ठ पर अपरिवर्तित किया जा सकता है।
हमने दो चरम मामलों पर विचार किया है: "बिल्कुल" निरपेक्ष और "बिल्कुल" सापेक्ष URL। लेकिन इस दुनिया में सब कुछ सापेक्ष है। यह URL पर भी लागू होता है। हर बार जब आप निरपेक्ष URL के बारे में कहते हैं, तो आपको हमेशा किस के सापेक्ष निर्दिष्ट करना चाहिए।
Link to home page
href="//sites.ru/shop/"
Link to product page
href="//sites.ru/shop/t-shirts/t-shirt-life-is-good/"
Google ऐसे URL की अनुशंसा करता है। अब, हालांकि, यह आमतौर पर माना जाता है कि http: // और https: // अलग-अलग साइटें हैं।
यानी डोमेन के रूट फ़ोल्डर के सापेक्ष।
Link to home page
href="/shop/"
Link to product page
href="/shop/t-shirts/t-shirt-life-is-good/"
यह एक अच्छा विकल्प है यदि सभी पृष्ठ एक ही डोमेन के भीतर हैं। जब आप अपनी साइट को किसी अन्य डोमेन पर ले जाते हैं, तो आपको URL में डोमेन नाम का एक सामूहिक प्रतिस्थापन करने की आवश्यकता नहीं होती है।
टैग <आधार> आधार URL को निर्दिष्ट करता है, जो स्वचालित रूप से सभी रिश्तेदार लिंक और एंकर में जोड़ा जाता है। आधार टैग निरपेक्ष लिंक को प्रभावित नहीं करता है। बेस URL के रूप में हम होम पेज निर्दिष्ट करेंगे: <base href = "http://sites.ru/shop/">।
Link to home page
href=""
Link to product page
href="t-shirts/t-shirt-life-is-good/"
अब आप अपनी साइट को न केवल किसी भी डोमेन, बल्कि किसी भी सबफ़ोल्डर में स्थानांतरित कर सकते हैं। बस इस बात का ध्यान रखें कि, हालांकि URL रिश्तेदार की तरह दिखते हैं, वास्तव में वे निरपेक्ष हैं। खासतौर पर एंकर पर ध्यान दें। वर्तमान पृष्ठ के भीतर नेविगेट करने के लिए हमें href = "टी-शर्ट / टी-शर्ट-लाइफ-इस-गुड / # कमेंट्स" लिखना होगा, न कि href = "# कमेंट्स"। बाद वाला मुख पृष्ठ पर फेंक दिया जाएगा।
आंतरिक लिंक के लिए मैं आधार-सापेक्ष URL (5) का उपयोग करता हूं। बाहरी लिंक और समाचारपत्रिका के लिए मैं निरपेक्ष URL (1) का उपयोग करता हूं।
वास्तव में तीन प्रकार हैं जिन पर स्पष्ट रूप से चर्चा की जानी चाहिए। हालांकि अभ्यास में URL को निचले स्तर पर संभाला जा सकता है और मैं यह कहना चाहूंगा कि डेवलपर्स हाथ से एक भी URL लिखे बिना अपनी पूरी ज़िंदगी गुज़ार सकते हैं।
निरपेक्ष URL आपके कोड को प्रोटोकॉल और डोमेन से जोड़ते हैं। इसे डायनामिक URL से दूर किया जा सकता है।
<a href=“https://dev.example.com/a.html?q=”>https://dev.example.com/a.html?q=</a>
पूर्ण पेशेवरों:
नियंत्रण - उपडोमेन और प्रोटोकॉल को नियंत्रित किया जा सकता है। एक अस्पष्ट उपडोमेन के माध्यम से प्रवेश करने वाले लोगों को उचित उपडोमेन में अंतिम संस्कार किया जाएगा। आप उपयुक्त के रूप में सुरक्षित और गैर-सुरक्षित के बीच आगे और पीछे आशा कर सकते हैं।
विन्यास योग्य - डेवलपर्स को निरपेक्ष रहना पसंद है। निरपेक्ष URL का उपयोग करते समय आप स्वच्छ एल्गोरिदम डिज़ाइन कर सकते हैं। URL को विन्यास योग्य बनाया जा सकता है ताकि किसी एकल कॉन्फ़िगरेशन फ़ाइल में एक परिवर्तन के साथ URL को साइट-व्यापी अपडेट किया जा सके।
Clairvoyance - आप अपनी साइट को स्क्रैप करने वाले लोगों को खोज सकते हैं या शायद कुछ अतिरिक्त बाहरी लिंक उठा सकते हैं।
रूट रिलेटिव URL आपके कोड को बेस url से टाई करते हैं। इसे डायनामिक URL और / या बेस टैग से दूर किया जा सकता है ।
<a href=“/index.php?q=”>.example.com/index.php?q=</a>
जड़ सापेक्ष पेशेवरों:
रिलेटिव URL आपके कोड को डायरेक्टरी स्ट्रक्चर में बाँध देते हैं। इससे उबरने का कोई उपाय नहीं है। रिलेटिव URL केवल ट्रैवेलिंग डायरेक्टरी के लिए या मेनियल टास्क के लिए शॉर्टकट के रूप में फाइल सिस्टम में उपयोगी होते हैं।
<a href=“index.php?q=”>index.php?q=</a>
<link src=“../.././../css/default.css” />
रिश्तेदार विपक्ष:
CONFUSING - कितने डॉट है? कितने फ़ोल्डर है? फाइल कहां है? यह काम क्यों नहीं कर रहा है?
रखरखाव - यदि कोई फ़ाइल गलती से संसाधनों को लोड करना छोड़ देती है, तो लिंक उपयोगकर्ता को गलत पृष्ठों पर भेजते हैं, प्रपत्र डेटा गलत पृष्ठ पर भेजा जा सकता है। यदि कोई फ़ाइल लोड होने के लिए जा रहे सभी संसाधनों को ले जाने की आवश्यकता है और सभी लिंक जो गलत होने जा रहे हैं, उन्हें अपडेट करने की आवश्यकता है।
वेब नहीं है - जब वेबपेज और अधिक जटिल हो जाते हैं और कई पृष्ठों पर दृश्य पुन: उपयोग होने लगते हैं, तो संबंधित लिंक उस फ़ाइल के सापेक्ष होंगे जो उन्हें शामिल किया गया था। यदि आपके पास HTML का एक नेविगेशन स्निपेट है जो कि हर पृष्ठ पर आने वाला है तो बहुत सारे अलग-अलग स्थानों के सापेक्ष होगा। जब वे टेम्पलेट बनाना शुरू करते हैं तो सबसे पहले लोगों को पता चलता है कि उन्हें URL को प्रबंधित करने के तरीके की आवश्यकता है।
कम्प्यूटेड - वे आपके ब्राउज़र द्वारा कार्यान्वित किए जाते हैं (उम्मीद है कि RFC के अनुसार)। RFC3986 में अध्याय 5 देखें ।
उफ़! - त्रुटियों या टाइपोस के परिणामस्वरूप मकड़ी के जाल हो सकते हैं।
डेवलपर्स ने यहां चर्चा की जा रही अर्थों में URL लिखना बंद कर दिया है। सभी अनुरोध एक वेबसाइट की इंडेक्स फ़ाइल के लिए हैं और इसमें एक क्वेरी स्ट्रिंग, उर्फ मार्ग शामिल हैं। मार्ग को एक छोटा URL माना जा सकता है जो आपके एप्लिकेशन को उत्पन्न होने वाली सामग्री बताता है।
<a href="<?=Route::url('named_url', array('first' => 'my', 'last' => 'whacky'))?>">
http://dev.example.com/index.php/my:whacky:url
</a>
मार्गों पेशेवरों:
अधिकांश लोग अपनी परियोजनाओं में तीनों रूपों का किसी न किसी तरह से उपयोग करेंगे। कुंजी उन्हें समझना है और कार्य के लिए सबसे उपयुक्त एक का चयन करना है।
यदि यह आपकी वेबसाइट के भीतर उपयोग करने के लिए है, तो रिश्तेदार URL का उपयोग करना बेहतर है, इस तरह अगर आपको वेबसाइट को किसी अन्य डोमेन नाम पर ले जाने या स्थानीय स्तर पर डिबग करने की आवश्यकता है, तो आप कर सकते हैं।
स्टैकओवरफ़्लो क्या कर रहा है (ctrl + U को फ़ायरफ़ॉक्स में देखें) पर एक नज़र डालें:
<a href="/users/recent/90691"> // Link to an internal element
कुछ मामलों में वे पूरी तरह से उपयोग करते हैं:
<link rel="stylesheet" href="http://sstatic.net/so/all.css?v=5934">
... लेकिन यह केवल गति में सुधार करने के लिए सबसे अच्छा अभ्यास है। आपके मामले में, ऐसा नहीं लगता है कि आप ऐसा कुछ भी कर रहे हैं, इसलिए मुझे इसकी चिंता नहीं होगी।
मैं यहाँ बहुमत से असहमत होने जा रहा हूँ।
मुझे लगता है कि रिश्तेदार URL योजना "ठीक" है जब आप जल्दी से कुछ उठना और चलाना चाहते हैं और बॉक्स के बाहर नहीं सोचते हैं, खासकर यदि आपकी परियोजना कुछ डेवलपर्स (या सिर्फ अपने) के साथ छोटी है।
हालांकि, एक बार जब आप बड़े, वसायुक्त सिस्टम पर काम करना शुरू करते हैं, जहां आप हर समय डोमेन और प्रोटोकॉल स्विच करते हैं, तो मेरा मानना है कि अधिक सुरुचिपूर्ण दृष्टिकोण क्रम में है।
जब आप सार में पूर्ण और सापेक्ष URL की तुलना करते हैं, तो निरपेक्ष जीतता है। क्यों? क्योंकि यह कभी नहीं टूटेगा। कभी। एक निरपेक्ष URL बिल्कुल वैसा ही है जैसा वह कहता है। पकड़ तब होती है जब आपको अपने पूर्ण URL को MAINTAIN करना होता है।
पूर्ण URL लिंकिंग के लिए कमजोर दृष्टिकोण वास्तव में पूरे URL को हार्ड कोडिंग है। एक महान विचार नहीं है, और शायद इस बात का अपराधी कि लोग उन्हें बनाए रखने के लिए खतरनाक / बुराई / कष्टप्रद के रूप में क्यों देखते हैं। एक बेहतर तरीका यह है कि आप खुद को URL जनरेटर का उपयोग करने के लिए आसान लिखें। ये लिखना आसान है, और अविश्वसनीय रूप से शक्तिशाली हो सकता है- स्वचालित रूप से आपके प्रोटोकॉल का पता लगा सकता है, आसानी से कॉन्फ़िगर कर सकता है (शाब्दिक रूप से संपूर्ण ऐप के लिए एक बार url सेट करें), आदि, और यह आपके डोमेन को स्वयं ही इंजेक्ट करता है। उस के बारे में अच्छी बात: आप रिश्तेदार URL का उपयोग करके कोडिंग पर जाते हैं, और समय के साथ आवेदन आपके URL को मक्खी पर पूर्ण निरपेक्षता के रूप में सम्मिलित करता है। बहुत बढ़िया।
यह देखते हुए कि व्यावहारिक रूप से सभी आधुनिक साइटें किसी प्रकार के गतिशील बैक-एंड का उपयोग करती हैं, यह कहा जाता है कि इस तरह से ऐसा करना साइट का सबसे अच्छा हित है। निरपेक्ष URL अधिक से अधिक सिर्फ आपको यह निश्चित करते हैं कि वे कहां तक इशारा करते हैं- वे SEO प्रदर्शन में सुधार भी कर सकते हैं।
मैं जोड़ सकता हूं कि पूर्ण URL किसी भी तरह पृष्ठ के लोड समय को बदलने के लिए तर्क एक मिथक है। यदि आपका डोमेन कुछ बाइट्स से अधिक वजन का है और आप 1980 के दशक में डायलअप मोडेम पर हैं, तो सुनिश्चित करें। लेकिन अभी ऐसा नहीं है। https://stackoverflow.com/ 25 बाइट्स है, जबकि "topbar-sprite.png" फ़ाइल जो वे साइट के नौसेना क्षेत्र के लिए उपयोग करते हैं उनका वजन 9+ kb पर है। इसका अर्थ है कि अतिरिक्त URL डेटा स्प्राइट फ़ाइल की तुलना में लोड किए गए डेटा का .2% है, और उस फ़ाइल को बड़ा प्रदर्शन हिट भी नहीं माना जाता है।
वह बड़ी, अडॉप्टिफ़ाइड, पूर्ण-पृष्ठ पृष्ठभूमि छवि आपके लोड समय को धीमा करने की अधिक संभावना है।
रिश्तेदार URL का उपयोग क्यों नहीं किया जाना चाहिए, इस बारे में एक दिलचस्प पोस्ट यहाँ है: http://yoast.com/relative-urls-issues/
उदाहरण के लिए, रिश्तेदारों के साथ एक मुद्दा जो उत्पन्न हो सकता है, वह यह है कि कभी-कभी सर्वर मैपिंग (आप बड़े, गड़बड़ प्रोजेक्ट्स पर ध्यान दें) फ़ाइल नामों के साथ नहीं चलते हैं और डेवलपर किसी रिश्तेदार URL के बारे में एक धारणा बना सकता है जो अभी नहीं है सच। मैंने अभी देखा कि आज मैं एक प्रोजेक्ट पर हूँ और यह एक पूरे पृष्ठ को नीचे ले आया है।
या शायद एक डेवलपर एक सूचक को स्विच करना भूल गया और अचानक Google ने आपके पूरे परीक्षण वातावरण को अनुक्रमित किया। वूप्स- डुप्लिकेट सामग्री (एसईओ के लिए खराब!)।
निरपेक्ष खतरनाक हो सकते हैं, लेकिन जब सही तरीके से उपयोग किया जाता है और इस तरह से जो आपके निर्माण को नहीं तोड़ सकते हैं तो वे अधिक विश्वसनीय साबित होते हैं। ऊपर दिए गए लेख को देखें, जो कारणों का एक गुच्छा देता है कि क्यों Wordpress url जनरेटर सुपर भयानक है।
:)
/
आधार पथ से लिंक करने के लिए है? यानी /products/wallets/thing.html
के रूप में करने का विरोध किया thing.html
के रूप में करने का विरोध कियाhttp://www.myshop.com/products/wallets/thing.html
echo Route::url('route_name')
HTTPS को बनाने के लिए विकल्प के साथ साइट यूआरएल और रूट की जानकारी का उपयोग करके एक निरपेक्ष URL का उपयोग कर सकते हैं ।
ज्यादातर उदाहरणों में रिश्तेदार यूआरएल जाने का तरीका है, वे स्वभाव से पोर्टेबल हैं, जिसका अर्थ है कि यदि आप अपनी साइट को उठाना चाहते थे और किसी ऐसे व्यक्ति को डालते हैं जहां यह तुरंत काम करेगा, तो संभवतः डिबगिंग के घंटों को कम कर देगा।
निरपेक्ष बनाम सापेक्ष URL पर एक बहुत अच्छा लेख है , इसे देखें।
एक URL जिसे URL योजना और योजना विशिष्ट भाग (के साथ शुरू होता है http://
, https://
, ftp://
, आदि) एक पूर्ण यूआरएल है।
कोई भी अन्य URL एक सापेक्ष URL है और उसे आधार URL की आवश्यकता होती है, सापेक्ष URL से हल किया जाता है (और इस तरह निर्भर करता है) संसाधन का URL है जिसे संदर्भ में उपयोग किया जाता है यदि अन्यथा घोषित नहीं किया गया है।
रिश्तेदार URL को हल करने के उदाहरणों के लिए RFC 2396 - परिशिष्ट C पर एक नज़र डालें ।
मान लीजिए कि आपके पास एक साइट है www.yourserver.com। वेब दस्तावेजों के लिए रूट डायरेक्टरी में आपके पास एक चित्र उप-निर्देशन है और उसमें आपके पास myimage.jpg है।
एक पूर्ण URL उदाहरण के लिए दस्तावेज़ के सटीक स्थान को परिभाषित करता है:
http://www.yourserver.com/images/myimage.jpg
एक रिश्तेदार URL वर्तमान निर्देशिका के सापेक्ष स्थान को परिभाषित करता है , उदाहरण के लिए, दिए गए मूल वेब निर्देशिका में आप अपनी छवि में हैं:
images/myimage.jpg
(उस रूट डायरेक्टरी के सापेक्ष)
आपको हमेशा जहां संभव हो, सापेक्ष URL का उपयोग करना चाहिए। यदि आप साइट को www.anotherserver.com पर ले जाते हैं, तो आपको उन सभी पूर्ण URL को अपडेट करना होगा जो www.yourserver.com पर इंगित कर रहे थे, रिश्तेदार केवल उसी तरह काम करते रहेंगे।
प्रत्येक प्रणाली जो सापेक्ष यूआरआई संकल्प का समर्थन करती है, दोनों रिश्तेदार और पूर्ण यूआरआई एक ही लक्ष्य की सेवा करते हैं: संदर्भित। और उनका उपयोग परस्पर किया जा सकता है। इसलिए आप प्रत्येक मामले में अलग तरीके से निर्णय ले सकते हैं । तकनीकी रूप से, वे एक ही संदर्भ प्रदान करते हैं ।
सटीक होने के लिए, प्रत्येक रिश्तेदार URI के साथ पहले से ही एक पूर्ण URI है। और वह आधार-यूआरआई है जिसके सापेक्ष यूआरआई के खिलाफ हल किया जाता है। तो एक सापेक्ष URI वास्तव में निरपेक्ष URI के शीर्ष पर एक विशेषता है।
और यही कारण है कि सापेक्ष यूआरआई के साथ आप अकेले पूर्ण यूआरआई के साथ अधिक कर सकते हैं - यह विशेष रूप से स्थिर वेबसाइटों के लिए महत्वपूर्ण है जो अन्यथा पूर्ण यूआरआई की तुलना में बनाए रखने के लिए लचीले नहीं हो सकते हैं।
सापेक्ष यूआरआई संकल्प के इन सकारात्मक प्रभावों का उपयोग गतिशील वेब-अनुप्रयोग विकास के लिए भी किया जा सकता है। अनफिलिबिलिटी निरपेक्ष URIs का परिचय एक गतिशील वातावरण में भी सामना करना आसान होता है, इसलिए कुछ डेवलपर्स के लिए जो URI रिज़ॉल्यूशन के बारे में अनिश्चित हैं और इसे ठीक से लागू करने और इसे कैसे प्रबंधित करें (यह हमेशा आसान नहीं है) अक्सर निरपेक्षता का उपयोग करने का विकल्प चुनते हैं एक वेबसाइट के एक गतिशील हिस्से में यूआरआई क्योंकि वे अन्य डायनेमिक सुविधाओं (जैसे यूआरआई उपसर्ग युक्त कॉन्फ़िगरेशन चर) का परिचय दे सकते हैं ताकि अनन्तता के आसपास काम कर सकें।
तो पूर्ण यूआरआई का उपयोग करने में क्या लाभ है? तकनीकी रूप से वहाँ नहीं है, लेकिन एक मैं कहूंगा: रिश्तेदार URI अधिक जटिल हैं क्योंकि उन्हें तथाकथित आधार-URI के खिलाफ हल करने की आवश्यकता है। यहां तक कि संकल्प को वर्षों से सख्ती से परिभाषित किया जाता है, आप उस क्लाइंट पर चल सकते हैं जिसमें यूआरआई रिज़ॉल्यूशन की गलती है। जैसे कि पूर्ण यूआरआई को किसी भी रिज़ॉल्यूशन की आवश्यकता नहीं होती है, निरपेक्ष यूआरआई का उपयोग करने से रिश्तेदार यूआरआई रिज़ॉल्यूशन के साथ दोषपूर्ण क्लाइंट व्यवहार में चलने का कोई जोखिम नहीं है। तो वास्तव में यह कितना उच्च जोखिम है? वैसे, यह बहुत दुर्लभ है। मैं केवल एक इंटरनेट ब्राउजर के बारे में जानता हूं, जो सापेक्ष यूआरआई संकल्प के साथ एक मुद्दा था। और वह आम तौर पर केवल एक बहुत ही अस्पष्ट (अस्पष्ट) मामले में नहीं था।
HTTP क्लाइंट (ब्राउज़र) के आगे यह हाइपरटेक्स्ट दस्तावेज़ों या कोड के लेखक के लिए शायद अधिक जटिल है। यहां पूर्ण यूआरआई का लाभ है कि यह परीक्षण करना आसान है, जैसा कि आप बस इसे दर्ज कर सकते हैं-जैसा कि आपके ब्राउज़र एड्रेस बार में है। हालाँकि, अगर यह सिर्फ आपका एक घंटे का काम नहीं है, तो आपको वास्तव में निरपेक्ष और सापेक्ष यूआरआई हैंडलिंग को समझने के लिए सबसे अधिक लाभ होता है ताकि आप वास्तव में रिश्तेदार लिंकिंग के लाभों का लाभ उठा सकें।