Zach’s ugly mug (his face)

Zach Leatherman

Relative URLs including the Domain

16 Oct 2008 Zach Leatherman

Just a neat little trick I saw while browsing the source code of Google Calendar. In some of their CSS files, they link to background-images using URLs that include everything but the protocol, which is something I hadn’t seen before.

The most common usage of a relative URL is linked from the root (note the slash at the beginning), like so:

You can also use ../ to navigate up a directory in your path, but that’s boring. The interesting question is: what if I wanted to load content from a separate domain, while at the same time transparently using the protocol used on my page?

Do what Google Calendar does and use the following style:

Note the lack of http: or https: from the URL. If this page were hosted on https (we don’t pay for certificates around here, so you’ll have to put up with the security warning), the last image source will load from https as well at no additional development cost.

This seems like it would be especially useful if you were using the YDN Performance tip to Split Components Across Domains. Remember, we’re not just talking images. This involves how the browser resolves URLs, so could be used inside href tags, css urls (as Google Calendar did), etc.


➡ Load Disqus to Leave a Comment ⬅

Radoslav Stankov

16 Oct 2008 at 06:29PM

I found the behavior of // recently when by mistake in a project I wrote // instead of / and the file was something. And I thought that i was some server error because it was on the test server.

I usually use full url to link all the content, always less chance to make a mistake