2011-06-28 18 views
9

câu hỏi là như sau:viết tắt http: // as // cho tập lệnh và thẻ liên kết? bất cứ ai nhìn thấy/sử dụng này trước khi?

nếu bạn có một cái nhìn tại trang web bất kỳ bằng addthis (nút chia sẻ) ...

khi bạn nổi lên trên nút addthis, và tất cả các tài sản mất tải cần thiết nhìn vào phần thân của tài liệu bằng cách sử dụng firebug hoặc chrome inspector (không phải là nguồn, tài liệu thực tế đang ngồi trên màn hình của bạn ... đối tượng thanh tra). bạn sẽ nhận thấy rằng các nội dung bổ sung được tải tự động bởi addthis trông giống như thế này:

<script type="text/javascript" src="//s7.addthis.com/static/r07/menu78.js"></script> 
<link rel="stylesheet" type="text/css" href="//s7.addthis.com/static/r07/widget61.css" media="all"> 

cách viết ngắn này của http: // trong các thẻ ở trên là gì?

có ai từng sử dụng điều này trước đây không? nó có tên 'chính thức' không? làm thế nào qua trình duyệt tương thích là phương pháp này ngắn bàn giao http tiêu?

có, tôi hiểu điều này sẽ phá vỡ mọi thứ theo như trình thu thập thông tin/seo đi, nhưng tôi đang nghĩ về việc bắt đầu sử dụng điều này trong các tình huống không thể truy cập được (chủ yếu là js đã xử lý nội dung).

ý tưởng tốt hay xấu?

+0

Xem câu hỏi này để biết thêm thông tin: http://stackoverflow.com/questions/550038/is-it-valid-to-replace -http-với-trong-một-script-src-http khi chúng tham chiếu đến phần liên quan trong RFC 3986 (Phần 4.2 và 5.2.2). Ngoài ra, chúng nên được gọi là Scheme-less (hoặc tham chiếu đường dẫn mạng) không phải là Protocol-less. –

+0

cho những người đi đầu hơn chữa lành thay đổi càng nhiều càng tốt để các liên kết viết tắt ... có nhiều lỗi trong (tất nhiên) tức là ... một giải thích ở đây (ie7/8 + liên kết băm): http: // php5.skauti-pardubice.cz/IE7-missing-scheme-bug.php | khác được thảo luận trong http://stackoverflow.com/questions/550038/is-it-valid-to-replace-http-with-in-a-script-src-http –

Trả lời

28

Bắt đầu từ một URL với // có nghĩa là "Sử dụng máy chủ khác nhau nhưng giữ chương trình tương tự"

Vì vậy, nếu bạn nạp //example.net/script từ https://example.com/ nó sẽ nhận được https://example.net/script, trong khi nếu bạn tải nó từ http://example.com/ nó sẽ nhận được http://example.net/script.

Nếu, mặt khác, bạn tải nó từ file://c:/Users/You/Documents/test.html thì có thể nó sẽ không giải quyết được bất kỳ điều gì hữu ích. Đảm bảo bạn phát triển với máy chủ web cục bộ (và truy cập http://localhost/) nếu bạn sử dụng cú pháp này.

Đây là một phần tiêu chuẩn của URI, nó cũng được hỗ trợ, và thường được gọi là "URI tương đối âm mưu"

+3

Tôi biết tôi là một người nhỏ bé ở đây, nhưng ngay cả khi bạn chỉ định https: //example.net và http: //example.net bạn vẫn đang sử dụng cùng một giao thức: giao thức http. Bạn chỉ sử dụng một sơ đồ uri khác. –

+0

searthing cho nhận xét này. Cảm ơn bạn –

5

Để xây dựng dựa trên Quentin's answer, các URL thường được gọi là protocol-less URLs (mặc dù, như Nick chỉ ra trong nhận xét, tên riêng là lược đồ ít hơn).

Ngoài ra, hãy cảnh giác với trường hợp bạn sử dụng chúng trong phát triển địa phương (tức là liên kết đến jQuery từ trang HTML mà bạn tải từ đĩa cứng của mình, thông qua giao thức file://). Trong các trường hợp như vậy, tất cả các liên kết ngoài sẽ được coi là địa chỉ liên kết cục bộ - //jquery.com/ sẽ tham chiếu đến file://jquery.com/

+2

Không phải tên riêng. Chúng nên được gọi là tham chiếu của lược đồ hoặc đường dẫn mạng.Trích dẫn: http://tools.ietf.org/html/rfc3986 –

+0

Tôi nghĩ rằng chúng được gọi là "Giao thức URL tương đối" –

+0

cảm ơn sự sửa đổi, Nick. Tôi đã cập nhật câu trả lời. –

Các vấn đề liên quan