ก่อนที่จะตัดสินใจว่าจะใช้<base>แท็กหรือไม่คุณต้องเข้าใจวิธีการทำงานสิ่งที่สามารถใช้งานได้และสิ่งที่เกี่ยวข้องคืออะไรและในที่สุดก็มีมากกว่าข้อดี / ข้อเสีย
<base>แท็กส่วนใหญ่ eases สร้างการเชื่อมโยงญาติใน templating ภาษาที่คุณไม่จำเป็นต้องกังวลเกี่ยวกับบริบทปัจจุบันในทุกการเชื่อมโยง
คุณสามารถทำเช่น
<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>ค่าลงท้ายด้วยเครื่องหมายสแลชมิฉะนั้นจะถูกตีความเทียบกับเส้นทางสุดท้าย
ความเข้ากันได้ของเบราว์เซอร์ทำให้เกิดปัญหาเฉพาะใน IE <base>แท็กใน HTML ที่ระบุไว้ไม่ได้มีแท็กสิ้นสุดลง</base>ดังนั้นจึงเป็นเรื่องถูกต้องตามกฎหมายที่จะใช้เพียงแค่<base>ไม่มีป้ายสิ้น อย่างไรก็ตาม IE6 คิดเป็นอย่างอื่นและเนื้อหาทั้งหมดหลังจากที่<base>แท็กอยู่ในกรณีเช่นนี้ถูกวางไว้เป็นลูกของ<base>องค์ประกอบในต้นไม้ HTML DOM สิ่งนี้สามารถทำให้เกิดปัญหาตั้งแต่แรกเห็นใน Javascript / jQuery / CSS ซึ่งเป็นองค์ประกอบที่ไม่สามารถเข้าถึงได้อย่างสมบูรณ์ในตัวเลือกเฉพาะเช่นhtml>bodyจนกระทั่งคุณค้นพบในตัวตรวจสอบ HTML DOM ว่าควรมีbase(และhead) อยู่ระหว่างนั้น
การแก้ไข IE6 ทั่วไปใช้ความคิดเห็นแบบมีเงื่อนไขของ IE เพื่อรวมแท็กปิดท้าย:
<base href="http://example.com/en/"><!--[if lte IE 6]></base><![endif]-->
หากคุณไม่สนใจ W3 Validator หรือเมื่อคุณใช้ HTML5 อยู่แล้วคุณก็สามารถปิดได้ด้วยตนเองเว็บเบราเซอร์ทุกเครื่องก็รองรับได้:
<base href="http://example.com/en/" />
การปิด<base>แท็กยังแก้ไขความบ้าของ IE6 บน WinXP SP3 ทันทีเพื่อร้องขอ<script>ทรัพยากรด้วย URI ที่เกี่ยวข้องsrcในวงวนไม่สิ้นสุด
อีกปัญหาที่อาจเกิดขึ้น IE จะประจักษ์เมื่อคุณใช้ URI สัมพันธ์ใน<base>แท็กเช่นหรือ<base href="https://stackoverflow.com//example.com/somefolder/"> <base href="https://stackoverflow.com/somefolder/">สิ่งนี้จะล้มเหลวใน IE6 / 7/8 อย่างไรก็ตามนี่ไม่ใช่ความผิดของเบราว์เซอร์ การใช้ URI ที่สัมพันธ์กันใน<base>แท็กนั้นอยู่ที่ผิดของตัวเอง ข้อกำหนด HTML4ระบุว่าควรจะเป็น URI แน่นอนจึงเริ่มต้นด้วยhttp://หรือhttps://โครงการ นี้ได้รับการลดลงในสเปค HTML5 ดังนั้นหากคุณใช้ HTML5 และกำหนดเป้าหมายเฉพาะเบราว์เซอร์ที่รองรับ HTML5 เท่านั้นคุณควรใช้ URI ที่สัมพันธ์กันใน<base>แท็ก
เป็นไปโดยใช้ชื่อ / กัญชาเบรกส่วนชอบ<a href="#anchor">เบรกสตริงแบบสอบถามเหมือน<a href="?foo=bar">และจุดยึดเส้นทางส่วนเช่น<a href=";foo=bar">กับ<base>แท็กคุณพื้นประกาศทั้งหมดเชื่อมโยงญาติญาติให้มันรวมทั้งชนิดของเบรกเหล่านั้น ไม่มีลิงก์ที่เกี่ยวข้องใด ๆ ที่เกี่ยวข้องกับ URI คำขอปัจจุบันอีกต่อไป (ซึ่งจะเกิดขึ้นหากไม่มี<base>แท็ก) นี่อาจเป็นเรื่องที่สับสนสำหรับผู้เริ่มต้น ในการสร้างแองเคอร์เหล่านั้นอย่างถูกวิธีคุณจำเป็นต้องรวม URI ด้วย
<a href="${uri}#anchor">hash fragment</a>
<a href="${uri}?foo=bar">query string</a>
<a href="${uri};foo=bar">path fragment</a>
ซึ่ง${uri}โดยทั่วไปแปลว่า$_SERVER['REQUEST_URI']ใน PHP ${pageContext.request.requestURI}ใน JSP และ#{request.requestURI}ใน JSF ตั้งข้อสังเกตว่าควรจะมีกรอบ MVC เช่น JSF <base>มีแท็กลดทุกต้นแบบนี้และขจัดความจำเป็นในการ ดูเพิ่มเติมอ่าวอะไร URL ไปยังการใช้งานเพื่อการเชื่อมโยง / นำทางไปยังหน้า