Tôi có thể bỏ qua tên miền for href trong thẻ cơ sở HTML không?


8

Hiện tại trên trang web của tôi, tôi sử dụng thẻ cơ sở HTML để rút ngắn URL trong thẻ neo. Tất cả các URL trên trang web của tôi thuộc về một tên miền. Để tuân thủ 100%, tôi sử dụng một URL tuyệt đối. ví dụ:

<base href="http://www.example.com/path/to/specialpage/">

Tôi đã tìm trên internet để xem liệu tôi có thể rút ngắn điều này bằng cách nào đó và nó vẫn hoạt động trong các trình duyệt được phát minh trong vòng 10 năm qua. Tôi muốn làm một cái gì đó như:

<base href="/path/to/specialpage/">

Câu hỏi của tôi là, nếu tôi sử dụng đoạn mã trên, liệu các trình duyệt lớn như Internet Explorer có bị hỏng không? hoặc có lỗi trong các trình duyệt chính với việc rút ngắn thẻ này? Tôi muốn thử bỏ qua tên miền nhưng trang web của tôi vẫn hoạt động với mọi trình duyệt được tạo trong 10 năm qua, ngay cả khi nó có nghĩa là bao gồm một thẻ đặc biệt cho một trình duyệt cụ thể, có thể tôi cần một cái gì đó như:

<!-- firefoxpatchID=1 -->
<base href="/path/to/specialpage/">
<!-- endfirefoxpatch -->

Giải pháp ở đây là gì? Tôi có thể thoát khỏi việc bỏ tên miền và mọi trình duyệt sẽ vui hay tôi phải làm điều gì đó đặc biệt cho một số trình duyệt nhất định để phù hợp với ý tưởng của mình?

Câu trả lời:


6

Không . Href phải trỏ đến một URI tuyệt đối . Tương đối không được phép trên một yếu tố cơ bản.

Thuộc tính này chỉ định một URI tuyệt đối hoạt động như URI cơ sở để giải quyết các URI tương đối.

Tiêu chuẩn HTML5 cho biết , liên quan đến thuộc tính href của <base>:

URL cơ sở tài liệu của đối tượng Tài liệu là URL tuyệt đối


1
Họ không phải tuyệt đối theo điều này : "URL cơ sở được sử dụng trong toàn bộ tài liệu cho các địa chỉ URL tương đối .... Các URI tuyệt đối và tương đối được cho phép."
Stephen Ostermiller

Việc có thể chỉ định các URI tương đối dường như là một thay đổi trong HTML5. Thông số kỹ thuật cho HTML 4.01 chắc chắn nói rằng đây phải là một URI tuyệt đối. Đây có thể là mối quan tâm của OP nếu họ muốn hỗ trợ các trình duyệt cũ "10 năm"?!
MrWhite

@StephenOstermiller Vâng, thay vào đó, hãy xem tiêu chuẩn quy định href phải chứa "URL tài liệu" và URL tài liệu được định nghĩa là "URL tuyệt đối". Nếu có sự khác biệt, bây giờ, so với HTML 4.01 , như được chỉ ra bởi w3dk, thì tôi không biết và tôi không bận tâm tìm kiếm.
Rob

1
Tôi nghĩ rằng bạn cần đọc tài liệu thêm một chút ... "URL cơ sở tài liệu của đối tượng Tài liệu là URL tuyệt đối thu được bằng cách chạy các bước phụ này: " ... "URL cơ sở tài liệu là URL cơ sở đóng băng của đầu tiên phần tử cơ sở trong Tài liệu có thuộc tính href ". Thật không may, tài liệu WhatWG dường như không giải thích thêm (ít nhất là liên kết nội bộ cho "URL cơ sở đóng băng" không có điểm cuối).
MrWhite

1
Nhưng thông số kỹ thuật tại w3.org giải thích thêm: "Để đặt URL cơ sở đóng băng , hãy giải quyết giá trị của thuộc tính nội dung href của phần tử so với URL cơ sở dự phòng của Tài liệu; nếu điều này thành công, hãy đặt URL cơ sở đóng băng thành kết quả tuyệt đối URL ". "URL cơ sở dự phòng của tài liệu" về cơ bản là URL tuyệt đối của tài liệu hiện tại. Hơi khó hiểu một chút, nhưng tôi nghĩ điều đó có nghĩa là bây giờ bạn có thể sử dụng các URL tương đối trong phần tử BASE. URL tuyệt đối tương ứng sau đó sẽ được giải quyết từ đây.
MrWhite
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.