এইচটিএমএল <বেস> ট্যাগের জন্য সুপারিশগুলি কী কী?


462

আমি <base>এইচটিএমএল ট্যাগটি এর আগে কখনও কোথাও ব্যবহার করতে দেখিনি। এর ব্যবহারের ক্ষেত্রে কী কী সমস্যা রয়েছে তার অর্থ কি আমি এড়ানো উচিত?

আধুনিক প্রযোজনা সাইটে (বা কোনও সাইট) এটি ব্যবহারের ক্ষেত্রে আমি কখনই লক্ষ্য করি নি যে এটি আমার অবসন্ন করে তোলে, যদিও মনে হয় এটি আমার সাইটে লিঙ্কগুলি সহজতর করার জন্য দরকারী অ্যাপ্লিকেশন থাকতে পারে।


সম্পাদন করা

কয়েক সপ্তাহের জন্য বেস ট্যাগটি ব্যবহার করার পরে, আমি বেস ট্যাগটি ব্যবহার করে কিছু বড় গোগাচগুলি খুঁজে পেয়েছি যা এটি প্রথম প্রদর্শিত হওয়ার চেয়ে অনেক কম কাঙ্ক্ষিত করে তোলে। মূলত, বেস ট্যাগে href='#topic'এবং এর href=''অধীনে পরিবর্তনগুলি তাদের ডিফল্ট আচরণের সাথে খুব বেমানান হয় এবং ডিফল্ট আচরণ থেকে এই পরিবর্তন সহজেই আপনার নিয়ন্ত্রণের বাইরে তৃতীয় পক্ষের লাইব্রেরিগুলিকে খুব বিশ্বাসযোগ্য না করে দিতে পারে অপ্রত্যাশিত উপায়ে, যেহেতু তারা যুক্তিযুক্তভাবে ডিফল্ট আচরণের উপর নির্ভর করবে। প্রায়শই পরিবর্তনগুলি সূক্ষ্ম হয় এবং কোনও বৃহত কোডবেস নিয়ে কাজ করার সাথে সাথেই তাত্ক্ষণিকভাবে-স্পষ্ট সমস্যা দেখা দেয়। এর পর থেকে আমি নীচে যে সমস্যার মুখোমুখি হয়েছি সেগুলি সম্পর্কে একটি উত্তর তৈরি করেছি। আপনার নিজের জন্য বিস্তৃত স্থাপনার প্রতিশ্রুতি দেওয়ার আগে লিঙ্কের ফলাফলগুলি পরীক্ষা করুন <base>, আমার নতুন পরামর্শ!


12
এটি প্রায়শই অনুসন্ধান ইঞ্জিনের ফলাফলগুলির ক্যাশেড সংস্করণগুলিতে লিঙ্কগুলি কাজ করে রাখার জন্য ব্যবহৃত হয়।
গম্বো

11
কেবলমাত্র লক্ষণীয়: বেস ট্যাগটি সাধারণ অ্যাঙ্করগুলির সাথেও ইন্টারঅ্যাক্ট করে, সুতরাং আপনি যদি বেসটি ব্যবহার করেন তবে পৃষ্ঠার কোনও অবস্থানে কেবলমাত্র একটি অ্যাঙ্করই <a href='#anchor1'>Anchor1</a>বেস ট্যাগটি ব্যবহার করবে, বর্তমান পৃষ্ঠায় উল্লেখ করার ডিফল্ট আচরণকে ওভাররাইড করে ভিত্তি. সুতরাং এটি অবশ্যই দেখার জন্য কিছু (যদিও এটি বেশ কয়েকটি অ্যাঙ্কর ব্যবহার করে এমন পৃষ্ঠাগুলিতে অন্য একটি বেস ট্যাগ ব্যবহার করে স্থির করা যেতে পারে)।
Kzqai

1
আপনি যদি গৃহীত উত্তরের সাথে সন্তুষ্ট না হন তবে আপনি কেন তা গ্রহণ না করে পুনরায় সাইন করবেন না?
পোপগুলি

1
এটি একটি বিকল্প ছিল তা সম্পর্কে অবগত ছিল না, তবে হ্যাঁ, পুনরায় বেশ্যা বলতে চান না (যদি এটি আমাকে পয়েন্টও দেয়) তবে আমি চূড়ান্ত বিশ্লেষণে মনে করি, অসুবিধাগুলি সুবিধাগুলি ছাড়িয়ে যায় এবং এটি হাইলাইট করতে চাই।
Kzqai

2
আপনি যান প্রতিটি বড় সাইটের উত্স কোডটি সাধারণত আপনার দিকে তাকাতে হয় না। আমি বিশ্বাস করি <base>যে আপনার ভাবার চেয়ে বেশি লোক ব্যবহার করছেন ।
ম্যাথিয়াস লাইককেগার্ড লরেঞ্জেন

উত্তর:


259

<base>ট্যাগটি ব্যবহার করবেন কিনা তা সিদ্ধান্ত নেওয়ার আগে আপনাকে বুঝতে হবে যে এটি কীভাবে কাজ করে, কী কী ব্যবহার করা যায় এবং এর কী কী প্রভাব পড়ে এবং অবশেষে সুবিধা / অসুবিধাগুলি ছাড়িয়ে যায় out


<base>ট্যাগ প্রধানত ভাষায় টেমপ্লেট হিসাবে আপনি বর্তমান প্রেক্ষাপটে সম্পর্কে চিন্তা করতে প্রয়োজন হবে না আপেক্ষিক লিংক তৈরি হওয়া সত্ত্বেও যে লিঙ্কটি ক্লিক করুন।

আপনি উদাহরণস্বরূপ করতে পারেন

<base href="${host}/${context}/${language}/">
...
<link rel="stylesheet" href="css/style.css" />
<script src="js/script.js"></script>
...
<a href="home">home</a>
<a href="faq">faq</a>
<a href="contact">contact</a>
...
<img src="img/logo.png" />

পরিবর্তে

<link rel="stylesheet" href="/${context}/${language}/css/style.css" />
<script src="/${context}/${language}/js/script.js"></script>
...
<a href="/${context}/${language}/home">home</a>
<a href="/${context}/${language}/faq">faq</a>
<a href="/${context}/${language}/contact">contact</a>
...
<img src="/${context}/${language}/img/logo.png" />

দয়া করে মনে রাখবেন যে <base href>মানটি একটি স্ল্যাশের সাথে শেষ হয়, অন্যথায় এটি শেষ পাথের তুলনায় ব্যাখ্যা করা হবে।


ব্রাউজারের সামঞ্জস্যতা হিসাবে, এটি কেবল আইইতে সমস্যা সৃষ্টি করে। <base>ট্যাগ HTML হিসাবে উল্লিখিত হয় না শেষ ট্যাগ থাকার </base>, তাই এটি শুধু ব্যবহারের এর legit <base>শেষ ট্যাগ ছাড়া। তবে IE6 অন্যথায় মনে করে এবং সমগ্র বিষয়বস্তু পর<base> ট্যাগ স্থাপন যেমন ক্ষেত্রে রয়েছে শিশু এর <base>এইচটিএমএল DOM গাছ উপাদান। এটি জাভাস্ক্রিপ্ট / জকিউয়ারি / সিএসএসে প্রথম দৃষ্টিতে অপ্রকাশ্য সমস্যা তৈরি করতে পারে, যেমন নির্দিষ্ট নির্বাচকগুলিতে উপাদানগুলি সম্পূর্ণরূপে অ্যাক্সেসযোগ্য html>body, যতক্ষণ না আপনি এইচটিএমএল ডিওএম পরিদর্শককে আবিষ্কার করেন যে এর মধ্যে একটি base(এবং head) হওয়া উচিত ।

একটি সাধারণ আই fix ফিক্সটি শেষ ট্যাগটি অন্তর্ভুক্ত করার জন্য একটি আইআই শর্তযুক্ত মন্তব্য ব্যবহার করছে:

<base href="http://example.com/en/"><!--[if lte IE 6]></base><![endif]-->

আপনি যদি ডাব্লু 3 বৈধকারকের বিষয়ে চিন্তা করেন না বা আপনি ইতিমধ্যে এইচটিএমএল 5 এ আছেন তবে আপনি কেবল এটি স্ব-বন্ধ করতে পারেন, প্রতিটি ওয়েব ব্রাউজার যেকোনভাবে এটি সমর্থন করে:

<base href="http://example.com/en/" />

<base>ট্যাগটি বন্ধ করা সঙ্গে সঙ্গে উইনএক্সপি এসপি 3 এর আইই 6 এর উন্মাদাকে তাত্ক্ষণিকভাবে ঠিক করে দেয় একটি অনন্ত লুপে <script>কোনও সম্পর্কিত ইউআরআইয়ের সাথে সংস্থান করার অনুরোধ করতে src

আরেকটি সম্ভাব্য ইন্টারনেট সমস্যা সুস্পষ্ট যখন আপনি একটি আপেক্ষিক কোনো URI ব্যবহার করবে <base>যেমন ট্যাগ, <base href="https://stackoverflow.com//example.com/somefolder/">বা <base href="https://stackoverflow.com/somefolder/">। এটি আই 6/7/8 এ ব্যর্থ হবে। এটি অবশ্য ব্রাউজারের দোষ নয়; <base>ট্যাগে আপেক্ষিক ইউআরআই ব্যবহার করা এটি নিজের ভুল হিসাবে। শুধুমাত্র HTML4 স্পেসিফিকেশন বলেন যে এটি একটি চরম কোনো URI হওয়া উচিত, এইভাবে দিয়ে শুরু http://বা https://প্রকল্প। এই বাদ দেয়া হয়েছে HTML5 এর স্পেসিফিকেশন । সুতরাং আপনি যদি এইচটিএমএল 5 ব্যবহার করেন এবং কেবলমাত্র HTML5- র সামঞ্জস্যপূর্ণ ব্রাউজারগুলি লক্ষ্য করে থাকেন, তবে আপনি <base>ট্যাগে আপেক্ষিক ইউআরআই ব্যবহার করে ভাল হয়ে উঠুন ।


নামযুক্ত / হ্যাশ টুকরা অ্যাঙ্কারগুলি ব্যবহার করার মতো <a href="#anchor">, ক্যোরি স্ট্রিং অ্যাঙ্কারগুলি <a href="?foo=bar">এবং প্যাথ টুকরা অ্যাঙ্কারগুলি পছন্দ <a href=";foo=bar">করে <base>ট্যাগ সহ আপনি মূলত kind প্রকারের অ্যাঙ্কর সহ সমস্ত সম্পর্কিত লিঙ্কগুলি সম্পর্কিত বলে ঘোষণা করছেন । আপেক্ষিক লিঙ্কগুলির কোনওটিই এখনকার অনুরোধ ইউআরআইয়ের সাথে তুলনামূলক নয় (যেমন ট্যাগ ছাড়াই হবে )। এটি প্রথমদিকে সূচনাকারীদের জন্য বিভ্রান্তিকর হতে পারে। সেই অ্যাঙ্করগুলি সঠিক উপায়ে তৈরি করতে আপনাকে মূলত ইউআরআই অন্তর্ভুক্ত করতে হবে,<base>

<a href="${uri}#anchor">hash fragment</a>
<a href="${uri}?foo=bar">query string</a>
<a href="${uri};foo=bar">path fragment</a>

যেখানে পিএইচপি, জেএসপি এবং জেএসএফে ${uri}মূলত অনুবাদ হয় । লক্ষণীয় হওয়া উচিত যে জেএসএফের মতো এমভিসি ফ্রেমওয়ার্কগুলিতে এই সমস্ত বয়লারপ্লেট হ্রাস এবং প্রয়োজনীয়তা সরিয়ে দেওয়ার ট্যাগ রয়েছে । অন্যান্য জেএসএফ পৃষ্ঠাগুলিতে লিঙ্ক / নেভিগেট করতে কোন URL টি ব্যবহার করতে হবে তাও দেখুন ।$_SERVER['REQUEST_URI']${pageContext.request.requestURI}#{request.requestURI}<base>


BalusC, একই সময় যখন আমি উত্তর এখানে লিখেছিলেন সম্পর্কে stackoverflow.com/a/46539210/632951 সেখানে 10 টির বেশি বেশি এই থ্রেড <বেস> সংক্রান্ত 8 বছর তথ্য বিশদ উপর একাধিক লেখক দ্বারা পোস্ট করা অধীনে দরকারী মন্তব্য ছিল। কোন লিঙ্কটি মন্তব্যগুলিতে লিঙ্ক করা হয়েছে?
পেসারিয়ার

162

বেস ট্যাগের প্রভাবগুলি ভাঙ্গন:

বেস ট্যাগটিতে কিছু অ-স্বজ্ঞাত প্রভাব রয়েছে বলে মনে হয় এবং ফলাফলের বিষয়ে সচেতন হওয়ার এবং নির্ভর করার আগে সেগুলি নিজের জন্য পরীক্ষা করার পরামর্শ দিচ্ছি <base>! যেহেতু আমি পৃথক ইউআরএলগুলির সাথে স্থানীয় সাইটগুলি পরিচালনা করতে বেস ট্যাগটি ব্যবহার করার চেষ্টা করার পরে এবং আবিষ্কারের পরে কেবল সমস্যাজনিত প্রভাবগুলি খুঁজে পেয়েছি, তাই আমার হতাশার জন্য আমি এই সম্ভাব্য ক্ষতির এই সংক্ষিপ্তসারটি অন্যদের জন্য তৈরি করতে বাধ্য বোধ করি।

আমি এর বেস ট্যাগ ব্যবহার করব: <base href="http://www.example.com/other-subdirectory/">নীচের ক্ষেত্রে আমার উদাহরণ হিসাবে, এবং ভান করব যে কোডটি যে পৃষ্ঠায় রয়েছে তা হল http://localsite.com/original-subdirectory

মেজর:

কোনও লিঙ্ক বা নামযুক্ত অ্যাঙ্কর বা ফাঁকা hrefs মূল সাবডিরেক্টরিটির দিকে নির্দেশ করবে না যতক্ষণ না এটি স্পষ্ট করে দেওয়া হয়: বেস ট্যাগটির পরিবর্তে বেস ট্যাগের ইউআরএলে একই পৃষ্ঠার অ্যাঙ্কর লিঙ্কগুলি সহ সমস্ত কিছুকে লিঙ্ক করে তোলে , যেমন:

  • <a href='#top-of-page' title='Some title'>A link to the top of the page via a named anchor</a>
    হয়ে
    <a href='http://www.example.com/other-subdirectory/#top-of-page' title='Some title'>A link to an #named-anchor on the completely different base page</a>

  • <a href='?update=1' title='Some title'>A link to this page</a>
    হয়ে
    <a href='http://www.example.com/other-subdirectory/?update=1' title='Some title'>A link to the base tag's page instead</a>

কিছু কাজ করে আপনি নিজের নিয়ন্ত্রণযুক্ত লিঙ্কগুলিতে এই সমস্যাগুলি সমাধান করতে পারেন, স্পষ্টভাবে উল্লেখ করে যে এই লিঙ্কগুলি যে পৃষ্ঠায় রয়েছে তাতে লিঙ্ক রয়েছে তবে আপনি যখন তৃতীয় পক্ষের লাইব্রেরিগুলিকে মিশ্রণটিতে যুক্ত করেন যা মানক আচরণের উপর নির্ভর করে, এটি সহজেই একটি বড় জগাখিচুড়ি করতে পারে।

গৌণ:

IE6 ফিক্স যে শর্তাধীন মন্তব্য প্রয়োজন: শর্তসাপেক্ষ মন্তব্য IE6 ডোম অনুক্রমের আপ screwing, অর্থাত্ এড়াতে জন্য প্রয়োজন <base href="http://www.example.com/"><!--[if lte IE 6]></base><![endif]-->যেমন BalusCউপরে তার উত্তরে উল্লেখ করা হয়।

সুতরাং সামগ্রিকভাবে, প্রতিটি লিঙ্কের উপরে আপনার সম্পূর্ণ সম্পাদনা নিয়ন্ত্রণ না করা পর্যন্ত প্রধান সমস্যাটি মুশকিল করে তোলে এবং আমি যেহেতু মূলত ভীত ছিলাম এটি এটিকে তার মূল্য থেকে বেশি সমস্যায় ফেলেছে। এখন আমাকে যেতে হবে এবং এর আমার সমস্ত ব্যবহারগুলি নতুন করে লিখতে হবে! : P

"টুকরা" / হ্যাশ ব্যবহার করার সময় সমস্যার জন্য পরীক্ষার সম্পর্কিত লিঙ্কগুলি:

http://www.w3.org/People/mimasa/test/base/

http://www.w3.org/People/mimasa/test/base/results


ইজির দ্বারা সম্পাদনা করুন: আপনারা সবাই মন্তব্য সম্পর্কে আমার মত একই বিভ্রান্তিতে পড়ছেন:

আমি নিম্নলিখিত পরীক্ষাগুলি সহ এটি নিজেই পরীক্ষা করে দেখেছি:

  • পিছনে স্ল্যাশ করা বা না, এখানে দেওয়া উদাহরণগুলিতে কোনও পার্থক্য করে না ( #anchorএবং ?queryকেবলমাত্র নির্দিষ্টটিতে সংযোজন করা হবে <BASE>)।
  • তবে আপেক্ষিক লিঙ্কের জন্য একটি পার্থক্য তোলে: চিহ্ন স্ল্যাশ বাদ, other.htmlএবং dir/other.htmlএ শুরু হবে DOCUMENT_ROOTদেওয়া উদাহরণ, /other-subdirectoryহচ্ছে (সঠিকভাবে) ফাইল হিসাবে গণ্য এবং এইভাবে বাদ দেওয়া হয়েছে।

সুতরাং আপেক্ষিক লিঙ্কগুলির জন্য, BASEসরানো পৃষ্ঠার সাথে সূক্ষ্মভাবে কাজ করে - অ্যাঙ্করগুলি থাকাকালীন এবং ?queriesফাইলের নামটি স্পষ্টভাবে নির্দিষ্ট করতে হবে ( BASEএকটি ট্রেলিং স্ল্যাশ থাকার সাথে , বা এটি ব্যবহৃত ফাইলটির নামের সাথে শেষ উপাদানটি নয়)।

এটিকে পুরো URL টি ফাইলের<BASE> পরিবর্তে (এবং এটি যে ডিরেক্টরিতে থাকে তাতে নয় ) প্রতিস্থাপন হিসাবে ভাবেন এবং আপনি জিনিসগুলি সঠিকভাবে পাবেন। এই উদাহরণে ব্যবহৃত ফাইলটি ধরে নেওয়া (এটি নতুন জায়গায় সরে যাওয়ার পরে), সঠিক স্পেসিফিকেশনটি হওয়া উচিত ছিল:other-subdirectory/test.html

<base href="http://www.example.com/other-subdirectory/test.html">

- এবং, voila, সবকিছু কাজ আশানুরূপ: #anchor, ?query, other.html, very/other.html, /completely/other.html


27

ভাল, এক মিনিট অপেক্ষা করুন। আমি মনে করি না বেস ট্যাগটি এই খারাপ খ্যাতির দাবিদার।

বেস ট্যাগ সম্পর্কে দুর্দান্ত জিনিস এটি আপনাকে কম ঝামেলা করে জটিল ইউআরএল পুনর্লিখন করতে সক্ষম করে।

এখানে একটি উদাহরণ। আপনি স্থানান্তর করার সিদ্ধান্ত নেন http://example.com/product/category/thisproduct করার http://example.com/product/thisproduct । আপনি প্রথম URL টি দ্বিতীয় ইউআরএলটিতে আবার লিখতে আপনার .htaccess ফাইলটি পরিবর্তন করেন change

জায়গায় বেস ট্যাগ সহ, আপনি আপনার .htaccess পুনর্লিখন করেন এবং এটিই। সমস্যা নেই. তবে বেস ট্যাগ ছাড়াই আপনার সমস্ত আপেক্ষিক লিঙ্ক ভেঙে যাবে।

ইউআরএল পুনর্লিখনগুলি প্রায়শই প্রয়োজনীয় হয়, কারণ এগুলিকে টুইট করা আপনার সাইটের আর্কিটেকচার এবং অনুসন্ধান ইঞ্জিনের দৃশ্যমানতায় সহায়তা করে। সত্য, আপনারা "#" এবং "" সমস্যাগুলির সমাধানের প্রয়োজন যা লোকেরা উল্লিখিত হয়েছে। তবে বেস ট্যাগটি টুলকিটের একটি স্থানের দাবিদার।


10
আমার দৃষ্টিকোণ থেকে, সমস্যাটি এটি ভবিষ্যতের-প্রমাণী। আপনি যদি কোনও পৃষ্ঠায় বেস ট্যাগ ব্যবহার করেন তবে পৃষ্ঠার সাথে ইন্টারঅ্যাক্ট করা অন্যান্য সমস্ত লাইব্রেরি তৃতীয় পক্ষের লাইব্রেরিগুলি সহ নগ্ন নোঙ্গর ট্যাগ বা হ্যাশগুলির ডিফল্ট আচরণের উপর নির্ভর করতে পারে এমন বেস ট্যাগ দ্বারা প্রভাবিত হবে।
Kzqai

4
@ কেজকাই, +1 ভাল পয়েন্ট, তবে অনেকগুলি ওয়েবসাইট রয়েছে যা ত্রুটিযুক্ত লাইব্রেরি ব্যবহার করে না। সমস্যা বেস হ্রেফের সাথে নয়, এটি গ্রন্থাগারের সাথে রয়েছে এবং এটি সেখানে সংশোধন করা দরকার।
পেসারিয়ার

2
@ পেসারিয়র, আমি বলব সমস্যাটি হ'ল বেস হেরেফের সাথে। বা বরং, সমস্যাটি হ'ল ব্রাউজারগুলি এ্যাঙ্কার হ্রেফের # টি দিয়ে শুরু হওয়াটিকে প্রভাবিত না করার পক্ষে যথেষ্ট চালাক বলে মনে হয় না। আমি এটি জাভাস্ক্রিপ্ট দিয়ে সমাধান করার চেষ্টা করেছি এবং এর ফলে href='#'লিঙ্কগুলি ব্যবহার করে গ্রন্থাগারগুলি সমস্যা হয়েছে (বুটস্ট্র্যাপ, উদাহরণস্বরূপ)। লাইব্রেরিগুলিকে দোষ দেওয়া হ'ল এইচটিএমএল-এর সাথে ভুল হওয়া সমস্ত কিছুর জন্য তাদের দোষ দেওয়ার মতো। এটি আধুনিক কাজের জন্য একটি পুরানো সরঞ্জাম, সাধারণ হিসাবে।
দেজি

2
"জটিল ইউআরএল কম ঝামেলা করে পুনর্লিখন করুন।" - যদিও, এই ক্ষেত্রে baseট্যাগটি প্রথম স্থানে ব্যবহার করা মূল-সম্পর্কিত ইউআরএল (বা এমনকি নিখুঁত ইউআরএল) না রাখার জন্য তর্কাতীতভাবে একটি কার্যনির্বাহী
মিঃ হোয়াইট

@ দেজি, যখন আমি "সমস্যা" লিখেছিলাম, তার অর্থ "বাগ"। হ্যাঁ, বেস হ্রেফের খুব অস্তিত্ব প্রকৃতপক্ষে একটি বাস্তব "সমস্যা", তবে উপরের ক্ষেত্রে, আমি বলছি বাগটি বেস হ্রেফের সাথে নয়। (তবুও একবারের জন্যও ভাবেন না যে আমি বেস href ব্যবহার করে সমর্থন করি, প্রকৃতপক্ষে, আমার অবস্থানটি হ'ল এটির বর্তমান সংস্করণে ভিত্তি href অকেজো : stackoverflow.com/a/46539210/632951 now এখন এগিয়ে যাওয়ার সর্বোত্তম উপায় হ'ল এটি অবমূল্যায়ন করা বা একাধিক সক্ষম করা বেস hrefs হিসাবে এটি কেবল তখনই কার্যকর যখন একাধিক ব্যবহৃত হতে পারে)
পেসারিয়ার

22

এটি ব্যবহার করা উচিত কিনা তা স্থির করার জন্য, এটি কী করে এবং এটির প্রয়োজন কি না সে সম্পর্কে আপনার সচেতন হওয়া উচিত। এটি ইতিমধ্যে আংশিকভাবে এই উত্তরে বর্ণিত হয়েছে , যা আমিও অবদান রেখেছিলাম। তবে বুঝতে ও অনুসরণ করা সহজ করার জন্য, এখানে একটি দ্বিতীয় ব্যাখ্যা। প্রথমে আমাদের বুঝতে হবে:

কীভাবে লিঙ্কগুলি <BASE>ব্যবহার না করে ব্রাউজার দ্বারা প্রক্রিয়াজাত করা হয়?

কিছু উদাহরণের জন্য, ধরে নেওয়া যাক আমাদের এই URL গুলি রয়েছে:

ক) http://www.example.com/index.html
খ) http://www.example.com/
গ) http://www.example.com/page.html
ঘ)http://www.example.com/subdir/page.html

A + B উভয় ফলাফলই একই ফাইল ( index.html) ব্রাউজারে প্রেরণ করা হবে, সি অবশ্যই প্রেরণ করবে page.htmlএবং ডি প্রেরণ করবে /subdir/page.html

আরও ধরে নেওয়া যাক, উভয় পৃষ্ঠায় লিঙ্কের একটি সেট রয়েছে:

1) সম্পূর্ণরূপে যোগ্যতাসম্পন্ন নিখুঁত লিঙ্কগুলি ( http://www...)
2) স্থানীয় নিরঙ্কুশ লিঙ্কগুলি ( /some/dir/page.html)
3) ফাইলের নাম ( dir/page.html) সহ
4) আপেক্ষিক লিঙ্কগুলি কেবলমাত্র "বিভাগগুলিতে" ( #anchor, ?foo=bar) সাথে আপেক্ষিক লিঙ্ক links

ব্রাউজারটি পৃষ্ঠাটি গ্রহণ করে এবং এইচটিএমএল সরবরাহ করে। এটি যদি কিছু URL খুঁজে পায় তবে এটি কোথায় চিহ্নিত করতে হবে তা জানতে হবে। এটি সর্বদা লিংক 1) এর জন্য পরিষ্কার, যা হিসাবে নেওয়া হয়। অন্য সমস্ত রেন্ডার্ড পৃষ্ঠার ইউআরএল উপর নির্ভর করে:

URL     | Link | Result
--------+------+--------------------------
A,B,C,D |    2 | http://www.example.com/some/dir/page.html
A,B,C   |    3 | http://www.example.com/dir/page.html
D       |    3 | http://www.example.com/subdir/dir/page.html
A       |    4 | http://www.example.com/index.html#anchor
B       |    4 | http://www.example.com/#anchor
C       |    4 | http://www.example.com/page.html#anchor
D       |    4 | http://www.example.com/subdir/page.html#anchor

এখন ব্যবহার হচ্ছে কি সঙ্গে পরিবর্তন <BASE>?

<BASE>ইউআরএলটি ব্রাউজারে প্রদর্শিত হওয়ার সাথে সাথে এটি প্রতিস্থাপন করবে বলে মনে করা হচ্ছে । সুতরাং এটি সমস্ত লিঙ্কগুলি এমনভাবে রেন্ডার করে যেন ব্যবহারকারী নির্দিষ্ট করা ইউআরএল কল করেছিল <BASE>। যা অন্যান্য কয়েকটি উত্তরে কয়েকটি বিভ্রান্তির ব্যাখ্যা দেয়:

  • আবার, "সম্পূর্ণরূপে যোগ্যতাসম্পন্ন নিখুঁত লিঙ্কগুলি" ("টাইপ 1") এর জন্য কোনও পরিবর্তন হয় না
  • স্থানীয় পরম লিঙ্কগুলির জন্য, লক্ষ্যযুক্ত সার্ভারটি পরিবর্তিত হতে পারে (যদি একটি নির্দিষ্ট করে থাকে)<BASE> কোনওটি প্রথমে ব্যবহারকারীর কাছ থেকে ডাকা হয়)
  • আপেক্ষিক ইউআরএলগুলি এখানে সমালোচনামূলক হয়ে ওঠে, সুতরাং আপনি কীভাবে সেট করবেন সে সম্পর্কে আপনাকে বিশেষ যত্ন নিতে হবে <BASE> :
    • এটি একটি ডিরেক্টরিতে সেট করা এড়ানো ভাল । এটি করার ফলে, "টাইপ 3" এর লিঙ্কগুলি কাজ চালিয়ে যেতে পারে তবে এটি অবশ্যই "টাইপ 4" এর ("বি কেস বি" বাদে) ব্রেক করে)
    • এটি বেশিরভাগ ক্ষেত্রে, পছন্দসই ফলাফলের উত্পাদিত পুরোপুরি যোগ্যতাসম্পন্ন ফাইল নামটিতে সেট করুন

একটি উদাহরণ এটি সেরা ব্যাখ্যা

বলুন আপনি কিছু ইউআরএল ব্যবহার করে "prettify" করতে চান mod_rewrite:

  • আসল ফাইল: <DOCUMENT_ROOT>/some/dir/file.php?lang=en
  • আসল ইউআরএল: http://www.example.com/some/dir/file.php?lang=en
  • ব্যবহারকারী-বান্ধব ইউআরএল: http://www.example.com/en/file

আসুন ধরে mod_rewriteনেওয়া যাক যে আসলটিতে ইউজার-বান্ধব ইউআরএল স্বচ্ছভাবে পুনরায় লেখার জন্য ব্যবহৃত হয়েছে (কোনও বাহ্যিক পুনঃনির্দেশ নেই, সুতরাং "ব্যবহারকারী-বান্ধব" ব্রাউজারের অ্যাড্রেস বারে থাকে, যখন আসলটি লোড হয়)। এখন কি করতে হবে?

  • কোন <BASE>নিদিষ্ট: বিরতি সব আপেক্ষিক লিংক (যেমন তারা উপর ভিত্তি করে করা হবে http://www.example.com/en/fileএখন)
  • <BASE HREF='http://www.example.com/some/dir>: একেবারে ভুল। নির্দিষ্ট URL dirএর ফাইল অংশ হিসাবে বিবেচিত হবে , তাই এখনও, সমস্ত আপেক্ষিক লিঙ্কগুলি ভাঙা।
  • <BASE HREF='http://www.example.com/some/dir/>: ইতিমধ্যে ভাল। তবে "টাইপ 4" এর আপেক্ষিক লিঙ্কগুলি এখনও ভাঙা হয়েছে ("কেস বি" ব্যতীত)।
  • <BASE HREF='http://www.example.com/some/dir/file.php>: হুবহু সবকিছু এই এক সঙ্গে কাজ করা উচিত।

একটি শেষ নোট

মনে রাখবেন এটি আপনার ডকুমেন্টের সমস্ত URL- এ প্রযোজ্য :

  • <A HREF=
  • <IMG SRC=
  • <SCRIPT SRC=
  • ...

আপনার শেষ নোটটি উল্লেখ করে ... আমি কৌতূহলী .. এটি কি কোনও jQuery এজ্যাক্স অনুরোধটি ব্যাখ্যা করার উপায়টিকেও পরিবর্তন করে? এটি আলাদা<SCRIPT SRC=
bkwdesign

@bkwdesign আমি jQuery ব্যবহার করি না, তবে আমি এটি অনুমান করব।
ইজজি

@ ইজি, পুনরায় "উদাহরণস্বরূপ" আসলে , আপনি </some/dir/file.php?lang=en> থেকে </ en / ফাইল> উপস্থাপন করেন, আপনি </ কিছু / দির / পৃষ্ঠা 2? ল্যাংকেও উপস্থাপন করতে চান = এন> এবং </ কিছু / দির / স্ক্রিপ্ট> থেকে </ en / page2> এবং </ en / স্ক্রিপ্ট>। সুতরাং আপনার আপেক্ষিক পাথগুলি যেমন করা উচিত ঠিক তেমনই কাজ করবে ।
পেসারিয়ার

<BASE HREF='http://www.example.com/some/dir/file.php>"টাইপ 4" এর সাথে কীভাবে কাজ করবে ? তা না মত "হবে না example.com/some/dir/file.php?foo=bar " এর পরিবর্তে example.com/subdir/page.html?foo=bar
ANewGuyInTown

@ আনাউগুইআইনটাউন হ্যাঁ, এবং এটিই হওয়া উচিত - যেমন আমার উদাহরণ হিসাবে http://www.example.com/some/dir/file.php"আসল অবস্থান" (দেখুন "একটি উদাহরণ এটি সর্বোত্তমভাবে ব্যাখ্যা করে"), এবং কেবলমাত্র একটি টুকরা ( #anchor) পার করা কেবল সেখানে সমাধান করা যেতে পারে।
ইজজি

12

দ্রুপাল প্রথমে <base>ট্যাগটির উপর নির্ভর করতেন এবং পরে এইচটিটিপি ক্রলার এবং ক্যাশে সমস্যার কারণে ব্যবহার না করার সিদ্ধান্ত নেন took

আমি সাধারণত লিঙ্কগুলি পোস্ট করতে পছন্দ করি না। তবে এটি ভাগ করে নেওয়া উপযুক্ত কারণ এটি <base>ট্যাগের মাধ্যমে সত্যিকারের অভিজ্ঞতার বিশদ অনুসন্ধানকারীদের উপকার করতে পারে :

http://drupal.org/node/13148


একটি আলোচনার লিঙ্ক পয়েন্টগুলির এই উত্তরটির আট বছর আগে ছিল, তাই এখন প্রায় এক দশক আগে। আমি মনে করি এটি যদি এখনও সমস্যা থেকে থাকে তবে অস্তিত্বহীন সমস্যাটির এমন বয়সের পুরাতন বর্ণনার সাথে লিঙ্ক না করে আরও কিছু পরীক্ষা করা উচিত।
সামি কুহমনেন

সত্য, তবে আইএমএইচও এটি কেবল আপনার ব্রাউজারে আপনার অ্যাঙ্করগুলি সঠিকভাবে কাজ করে তা নয়, আপনার ভিত্তিক বাস্তবায়ন পরীক্ষা করার জন্য আপনার কী সমস্যাগুলির প্রয়োজন তা এখনও চোখের ওপেনার <base>
আমর মোস্তফা

@ আমর মোস্তফা, শুধু বেস href ব্যবহার করবেন না।
পেসারিয়ার 8

10

এটি পৃষ্ঠাগুলি অফলাইন দেখার পক্ষে সহজ করে তোলে; আপনি বেস ট্যাগটিতে পুরোপুরি যোগ্যতাসম্পন্ন URL টি রাখতে পারেন এবং তারপরে আপনার দূরবর্তী সংস্থানগুলি সঠিকভাবে লোড হবে properly


@ এরিক, অফলাইন দেখার পাশাপাশি, এটি অন্য সমস্ত ডোমেনে কোনও ডোমেনের একটি পৃষ্ঠা ডেমো করা দরকার এমন সমস্ত স্টপগ্যাপ ব্যবহারের ক্ষেত্রে খুব কার্যকর too উদাহরণস্বরূপ, jsfiddle এ কোনও পৃষ্ঠা ডেমোম করার সময় আপনি jsfiddle এর ডোমেনের পরিবর্তে আপনার ডোমেনটি বেস করতে বেস href ব্যবহার করতে পারেন। Real যদিও বাস্তবে বলা যায়, কেবল স্টপগ্যাপ ইউজক্যাসের জন্য ট্যাগ তৈরি করা ভাল ডিজাইন নয়, সুতরাং বেস হ্রেফকে অবজ্ঞা করা এবং অপসারণ করা উচিত এমনকি এটি স্টপগ্যাপ ব্যবহারের ক্ষেত্রে কার্যকর হতে পারে।
পেসারিয়ার

5

হ্যাশ "#" বর্তমানে বেস উপাদানগুলির সাথে একযোগে জাম্প লিঙ্কগুলির জন্য কাজ করে তবে কেবলমাত্র গুগল ক্রোম এবং ফায়ারফক্সের নয়, আইই 9 নয় versions

আইই 9 পৃষ্ঠাটি কোথাও না লাফিয়ে পুনরায় লোড হওয়ার কারণ হিসাবে উপস্থিত হয়। যদি আপনি ফ্রেমটির অভ্যন্তরে একটি পৃথক পৃষ্ঠায় জাম্প লিঙ্কগুলি লোড করার জন্য ফ্রেমকে নির্দেশ দেওয়ার সময় কোনও iframe এর বাইরের দিকে জাম্প লিঙ্ক ব্যবহার করছেন, আপনি পরিবর্তে ফ্রেমের অভ্যন্তরে লোড হওয়া জাম্প লিঙ্ক পৃষ্ঠাটির একটি দ্বিতীয় অনুলিপি পাবেন।


5

এটি সম্ভবত খুব জনপ্রিয় নয় কারণ এটি সুপরিচিত নয়। সমস্ত বড় ব্রাউজার এটি সমর্থন করায় আমি এটি ব্যবহার করতে ভয় পাব না।

যদি আপনার সাইট এজেএক্স ব্যবহার করে তবে আপনি নিশ্চিত করতে চাইবেন যে আপনার সমস্ত পৃষ্ঠাগুলি এটি সঠিকভাবে সেট হয়েছে বা আপনি যে লিঙ্কগুলি সমাধান করতে পারবেন না সেগুলি দিয়ে শেষ করতে পারেন।

targetএইচটিএমএল ৩.০১ স্ট্রাইক পৃষ্ঠায় কেবল এ্যাট্রিবিউটটি ব্যবহার করবেন না ।


আসলে বেসটারেজেট কার্যকর হতে পারে তবে বেসহ্রেফ আইটেম। আসলে এটি জনপ্রিয় কারণ এটি দরকারী । আমার উত্তরগুলি দেখুন।
পেসারিয়ার

এখন সমস্ত ব্রাউজার baseট্যাগ সমর্থন করে ।
ভাইটালি জেডনেভিচ

3

পৃষ্ঠায় অন্তর্ভুক্ত এসভিজি চিত্রগুলির ক্ষেত্রে, baseট্যাগটি ব্যবহার করা হলে আরও একটি গুরুত্বপূর্ণ সমস্যা দেখা দেয় :

যেহেতু baseট্যাগটি দিয়ে (ইতিমধ্যে উপরে উল্লিখিত হিসাবে) আপনি কার্যকরভাবে পছন্দ মতো হ্যাশ ইউআরএলগুলি ব্যবহারের দক্ষতাটি ছেড়ে দেন

<a href="#foo">

কারণ এগুলি বর্তমান নথির অবস্থানের চেয়ে বেস ইউআরএলের বিরুদ্ধে সমাধান করা হবে এবং সুতরাং এটি আর আপেক্ষিক নয়। সুতরাং আপনাকে এই জাতীয় লিঙ্কের মতো বর্তমান দস্তাবেজের পথ যুক্ত করতে হবে

<a href="https://stackoverflow.com/path/to/this/page/name.html#foo">

সুতরাং baseট্যাগের আপাতদৃষ্টিতে ইতিবাচক দিকগুলির মধ্যে একটি (যা ল্যাঙ্গুয়াল উপসর্গগুলি অ্যাঙ্কর ট্যাগ থেকে দূরে সরিয়ে নিয়ে যাওয়া এবং আরও ভাল, সংক্ষিপ্ত অ্যাংকার্স পাওয়া) স্থানীয় হ্যাশ ইউআরএলগুলির সম্পূর্ণ ব্যাকফায়ার।

আপনার পৃষ্ঠায় এসভিজিকে অন্তর্ভুক্ত করার সময় এটি বিশেষত বিরক্তিকর, এটি স্থির এসভিজি হোক বা গতিশীলভাবে উত্পন্ন এসভিজি হোক কারণ এসভিজিতে এই জাতীয় অনেক উল্লেখ থাকতে পারে এবং baseট্যাগ ব্যবহার করার সাথে সাথে এগুলি সমস্ত ভেঙে যাবে , বেশিরভাগ ক্ষেত্রে, তবে সমস্ত ব্যবহারকারী নয় এজেন্ট বাস্তবায়ন (লেখার সময় ক্রোম অন্তত এখনও এই পরিস্থিতিতে কাজ করে)।

আপনি যদি কোনও টেম্প্লেটিং সিস্টেম বা অন্য কোনও সরঞ্জাম-চেইন ব্যবহার করেন যা আপনার পৃষ্ঠাগুলি প্রক্রিয়া করে / উত্পন্ন করে, আমি সর্বদা baseট্যাগ থেকে মুক্তি পাওয়ার চেষ্টা করব , কারণ আমি এটি দেখতে পাচ্ছি, এটি টেবিলে সমাধান হওয়ার চেয়ে আরও বেশি সমস্যা নিয়ে আসে।


এসভিজির সাথে বা তার বাইরে, বেস ট্যাগটি অকেজো এবং এটি ক্ষতিকারক হিসাবে বিবেচিত । আমার বিবরণ দেখুন: stackoverflow.com/a/46539210/632951
Pacerier

3

এছাড়াও, আপনার মনে রাখা উচিত যে আপনি যদি আপনার ওয়েব সার্ভারটি অ-মানক পোর্টে চালনা করেন তবে আপনাকে বেস হ্রেফেও পোর্ট নম্বর অন্তর্ভুক্ত করতে হবে:

<base href="//localhost:1234" />  // from base url
<base href="../" />  // for one step above

2

আমি সত্যিই এটি ব্যবহার করার কোন পয়েন্ট দেখিনি। খুব অল্প সুবিধা দেয় এবং জিনিসগুলি ব্যবহার করা আরও শক্ত করে তোলে।

আপনার শত বা হাজার হাজার লিঙ্ক না হয়ে থাকলে সমস্তগুলি একই উপ-ডিরেক্টরিতে থাকে। তারপরে এটি আপনাকে ব্যান্ডউইথের কয়েকটি বাইট সংরক্ষণ করতে পারে।

পরবর্তী চিন্তাভাবনা হিসাবে, আমি মনে করি আইই 6-তে ট্যাগ নিয়ে কিছু সমস্যা আছে। আপনি এগুলি শরীরের যে কোনও জায়গায় রাখতে পারেন, সাইটের বিভিন্ন অংশকে বিভিন্ন জায়গায় পুনর্নির্দেশ করতে পারেন। এটি আই 7 এ স্থির করা হয়েছিল, যা অনেকগুলি সাইটকে ভেঙে দেয়।


3
সুবিধাটি সম্ভবত ব্যান্ডউইথকে সংরক্ষণ করছে না, তবে ক্লিনার এবং আরও ছোট url। দুর্ভাগ্যক্রমে, সমস্ত লিঙ্কের আচরণের সূক্ষ্ম পরিবর্তনগুলি আসলেই এটির জন্য মূল্যহীন নয় at
Kzqai

1
baseট্যাগ কিছু সমস্যা করার জন্য একটি সমাধান। আপনার যদি সমস্যা না হয় তবে baseট্যাগটি ব্যবহার করবেন না । উদাহরণ: 1. বিভিন্ন সিস্টেমে এইচটিএমএল সামগ্রী পুনরায় ব্যবহার করা। লিঙ্কগুলি সামগ্রীতে আপেক্ষিক রাখা হয় এবং একটি উপযুক্ত baseট্যাগ সেট করা হয় (সিএমএস দ্বারা) যাতে লিঙ্কগুলি সঠিকভাবে সমাধান হয়। ২. একটি বিদ্যমান সাইট জুড়ে আপেক্ষিক ইউআরএল ব্যবহার করে তবে পরে "সুন্দর" ইউআরএলগুলি প্রয়োগ করার সিদ্ধান্ত নিয়েছে যা ইউআরএল-পাথের গভীরতা পরিবর্তন করে। কোনও baseট্যাগ সমস্ত আপেক্ষিক URL গুলি "ফিক্সিং" করতে পছন্দনীয় হিসাবে দেখা যায়।
মিঃ হোয়েট

@ এমআরওহাইট, সিএমএসের লিঙ্কগুলি ইতিমধ্যে HTML হিসাবে সঠিকভাবে সমাধান করার জন্য বেস ট্যাগ ব্যবহার করার দরকার নেই need বর্তমান ফোল্ডারে ডিফল্ট যে আপেক্ষিক পাথ সমর্থন করে। : এখানে বিবরণাদি দেখুন stackoverflow.com/a/46539210/632951
Pacerier

1
@ পেসিয়ার যা সামগ্রীটি কোথায় রয়েছে তার উপর নির্ভর করে (এফডাব্লুআইডাব্লু আমি ওয়ার্ডপ্রেস এট আলকে উল্লেখ করছি না)।
মিঃ হোয়েট

@ মিঃ হোইট সাধারণত একটি সিএমএস প্রথমে স্থির লিঙ্ক ব্যবহার করবে না, সুতরাং উদাহরণটি এক ধরনের অদ্ভুত। আসলে, আজকাল খুব কম ওয়েবসাইট স্ট্যাটিক এইচটিএমএল ব্যবহার করে নির্মিত। - আমি আপনার পয়েন্টগুলি সেখানে দেখতে পাচ্ছি, তবে সেগুলি হ'ল মূলত এখন অপ্রচলিত সমস্যার সমাধান। (প্রত্যেকে এবং তাদের দাদা-দাদীরা সমস্ত কিছুর জন্য ওয়ার্ডপ্রেস, বা অনুরূপ ব্যবহার করছে))
আটলি

2

বেস - ট্যাগ ব্যবহৃত হয় এবং বর্ণিত সমস্যাটি ঘটে এমন একটি সাইটও রয়েছে। (jquery আপগ্রেড করার পরে), এই জাতীয় ট্যাব url থাকার মাধ্যমে এটি ঠিক করতে সক্ষম হয়েছিল:

<li><a href="{$smarty.server.REQUEST_URI}#tab_1"></li>

এটি তাদের "স্থানীয়" করে তোলে

আমি ব্যবহৃত রেফারেন্সগুলি:

http://bugs.jqueryui.com/ticket/7822 http://htmlhelp.com/references/html40/head/base.html http://tjvanoll.com/2013/02/17/using-jquery-ui- ট্যাব-সঙ্গে-বেস-ট্যাগ /


2

অ্যাঙ্গুলারজেএসের সাথে কাজ করা বেস ট্যাগটি নিঃশব্দে কুকি স্টোরকে ভেঙে দেয় এবং আমার অ্যাপ্লিকেশনটি আর কুকিগুলি কেন লিখতে পারে না তা নির্ধারণ করতে আমার কিছুটা সময় লেগেছে। সতর্ক করা হবে...


1

একটি বিষয় মনে রাখা:

আপনি যদি আইওএস-এ ইউআইউইউবভিউয়ের মধ্যে প্রদর্শিত হতে একটি ওয়েবপৃষ্ঠা বিকাশ করেন তবে আপনাকে বেস ট্যাগটি ব্যবহার করতে হবে। এটি অন্যথায় কাজ করবে না। জাভাস্ক্রিপ্ট, সিএসএস, চিত্রগুলি হোন - এর মধ্যে কোনওটিই ইউআইউইউভিউ ভিউয়ের অধীন আপেক্ষিক লিঙ্কগুলির সাথে কাজ করবে না, যদি না ট্যাগ BASE নির্দিষ্ট করা থাকে।

আমি এর আগেও ধরা পড়েছি, যতক্ষণ না আমি জানতে পেরেছি।


1

আমি ব্যবহারের একটি উপায় <base>এবং অ্যাঙ্কর ভিত্তিক লিঙ্কগুলি পেয়েছি । আপনি জাভাস্ক্রিপ্ট ব্যবহার করতে পারেন লিঙ্কগুলি #contactযেমন আছে তেমন কাজ করার জন্য। আমি এটি কিছু প্যারাল্যাক্স পৃষ্ঠায় ব্যবহার করেছি এবং এটি আমার পক্ষে কাজ করে।

<base href="http://www.mywebsite.com/templates/"><!--[if lte IE 6]></base><![endif]-->

...content...

<script>
var link='',pathname = window.location.href;
$('a').each(function(){
    link = $(this).attr('href');
    if(link[0]=="#"){
        $(this).attr('href', pathname + link);
    }
});
</script>

পৃষ্ঠার শেষে আপনার ব্যবহার করা উচিত


0

আমার প্রস্তাবটি ইউআরএল পাথ পরিচালনা করার ক্ষেত্রে <base>উপাদানটি ব্যবহার না করা । কেন?

এটি কেবল অন্য সমস্যার জন্য একটি সমস্যা ব্যবসা করে। বেস উপাদান ছাড়াই আপনি আপনার পছন্দ মতো যে কোনও পাথ সিস্টেম ব্যবহার করতে পারেন আপনার আপেক্ষিক পাথ এবং লিঙ্কগুলি ভীতি ছাড়াই break আপনার যে সমস্ত url গুলি সেই পথে কাজ করতে পারে তার নকশায় আপনি যে মুহুর্তে বেস উপাদানটি সেট করেন আপনি "লকড" হয়ে যান এবং এখন বেস পথ থেকে কাজ করতে সমস্ত পাথ পরিবর্তন করতে হবে। খারাপ ধারণা!

তার মানে এখন আপনাকে দীর্ঘ দীর্ঘ পথ লিখতে হবে এবং প্রতিটি পাথ এই বেসের সাথে তুলনামূলকভাবে ট্র্যাক করে রাখতে হবে। সবচেয়ে খারাপ ..... <base>উপাদানটি ব্যবহার করার সময় তারা আপনাকে পুরানো ব্রাউজারগুলিকে সমর্থন করার জন্য একটি সম্পূর্ণ যোগ্যতাসম্পন্ন বেস পাথ ব্যবহার করার পরামর্শ দেয় (" https://www.example.com/ "), সুতরাং এখন আপনি নিজের ডোমেনটিকে নিজের মধ্যে হার্ড-কোডড করেছেন পৃষ্ঠা বা আপনার সমস্ত লিঙ্কগুলি একটি বৈধ ডোমেন পাথের উপর নির্ভরশীল করে তুলেছে।

অন্যদিকে, আপনি যখন আপনার ওয়েবসাইট থেকে আবার বেস পাথটি সরিয়ে ফেলেন, আপনি এখন আরও খাটো আপেক্ষিক পাথ ব্যবহার করতে মুক্ত হন যা পুরোপুরি যোগ্যতা অর্জন করতে পারে, মূল থেকে নিখুঁত পাথ ব্যবহার করতে পারে, বা সত্যিকারের সাথে সম্পর্কিত যে রাস্তাগুলি ব্যবহার করে আপনি যে ফাইল এবং ফোল্ডারে রয়েছেন Its এটি অনেক বেশি নমনীয়। এবং "# হেলো" এর মতো সমস্ত খণ্ডের মধ্যে কোনও অতিরিক্ত সমাধান ছাড়াই সঠিকভাবে কাজ করে। আবার লোকেরা এমন সমস্যা তৈরি করছে যা বিদ্যমান নেই।

এছাড়াও উপরের যুক্তি যে আপনার ওয়েব পৃষ্ঠাগুলির ফোল্ডারগুলিকে নতুন সাবফোল্ডার অবস্থানে স্থানান্তরিত করতে সহায়তা করতে আপনার বেস ইউআরএলগুলি আজকের সত্যিকার অর্থে গুরুত্বপূর্ণ নয় কারণ বেশিরভাগ আধুনিক সার্ভারগুলি আপনাকে কোনও ডোমেনের অধীনে কোনও নতুন অ্যাপ্লিকেশন রুট ফোল্ডার হিসাবে দ্রুত কোনও সাবফোল্ডার সেটআপ করার অনুমতি দেয়। সংজ্ঞা বা ওয়েব অ্যাপ্লিকেশনটির "রুট" এখন কোনও ফোল্ডার বা ডোমেন দ্বারা সীমাবদ্ধ নয়।

এই পুরো বিতর্ককে একদম নির্বোধ বলে মনে হচ্ছে। সুতরাং আমি বলি বেস ইউআরএল ছেড়ে দিন এবং এটি ব্যবহার না করে এমন পুরানো নেটিভ সার্ভার-ক্লায়েন্টের ডিফল্ট পাথ সিস্টেমটিকে সমর্থন করুন।

দ্রষ্টব্য: আপনার যদি সমস্যাটি কিছু নতুন এপিআই সিস্টেমের কারণে পাথগুলি নিয়ন্ত্রণ করছে তবে সমাধানটি সহজ ... আপনি কীভাবে আপনার সমস্ত ইউআরএল এবং আপনার এপিআই-এর লিঙ্কগুলি অনুসরণ করবেন সে বিষয়ে সামঞ্জস্য বজায় রাখুন। বেস বা HTML5 বা জাভাস্ক্রিপ্ট এপিআই কিডিজির মতো নতুন সার্কাস ট্রিকগুলির ব্রাউজার সমর্থনের উপর নির্ভর করবেন না। আপনার সমস্ত অ্যাঙ্কর ট্যাগগুলি কেবল ধারাবাহিকভাবে সরান এবং আপনার কোনও সমস্যা হবে না। আরও কী, আপনার ওয়েব অ্যাপ্লিকেশনটি ব্যবহার করা পাথ সিস্টেম নির্বিশেষে নতুন সার্ভারগুলিতে তাত্ক্ষণিকভাবে বহনযোগ্য।

আবার পুরনো কি নতুন! বেস উপাদানটি এমন একটি সমস্যার সমাধান তৈরি করার চেষ্টা সম্পর্কে স্পষ্টভাবে যা আজ থেকে 20 বছর আগে ওয়েব ওয়ার্ল্ডে কখনও ছিল না today


-1

বেস href উদাহরণ

লিঙ্কগুলি সহ একটি সাধারণ পৃষ্ঠা বলুন:

<a href=home>home</a> <a href=faq>faq</a> <a href=etc>etc</a>

.আর একটি পৃথক ফোল্ডারে লিঙ্কগুলি:

..<a href=../p2/home>Portal2home</a> <a href=../p2/faq>p2faq</a> <a href=../p2/etc>p2etc</a>..

সঙ্গে বেস সূরা , আমরা এড়াতে পারেন পুনরাবৃত্তি বেস ফোল্ডারের ing:

<base href=../p2/>
<a href=home>Portal2-Home</a> <a href=faq>P2FAQ</a> <a href=contact>P2Contact</a>

সুতরাং এটি একটি জয় .. তবুও পৃষ্ঠাগুলিতে প্রায়শই বিভিন্ন ঘাঁটিগুলিতে ইউআরএল থাকে এবং বর্তমান ওয়েব প্রতি পৃষ্ঠায় কেবল একটি বেস href সমর্থন করে , তাই জয়টি দ্রুত বেসের as hrefed পুনরাবৃত্তি হিসাবে ঘাঁটি হিসাবে হারিয়ে যায়, যেমন:

<a href=../p1/home>home</a> <a href=../p1/faq>faq</a> <a href=../p1/etc>etc</a>
<!--.. <../p1/> basepath is repeated -->

<base href=../p2>
<a href=home>Portal2-Home</a> <a href=faq>P2FAQ</a> <a href=contact>P2Contact</a>


উপসংহার

( বেস লক্ষ্য কার্যকর হতে পারে)) বেস href হিসাবে বেহুদা :

  • পৃষ্ঠা সমানভাবে WET :
    • ডিফল্ট বেস [স্বামী ফোল্ডার]। নিখুঁত (অপ্রয়োজনীয় / বিরল ব্যতিক্রম না 𝒞1 এবং .2 )।
    • বর্তমান ওয়েব ⇌ একাধিক বেস hrefs অসমর্থিত

সম্পর্কিত


এটি নিশ্চিত যে @ ডাউনভোটাররা বেসহ্রেফ কীভাবে কার্যকর তা ব্যাখ্যা করতে সক্ষম হবে না, বিশেষত যখন পুরো শিল্পগুলি এটি ব্যবহারের বিরুদ্ধে ব্যাপকভাবে প্রস্তাব দেয়।
পেসারিয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.