Using Absolute and
Relative References





What's New

An Absolute Reference provides the complete http address in the form of a full URL, including the server name and complete path. For instance, if you had a file named "foo.gif" in a subdirectory in your Andrew/AFS file area under your www directory named "images" (for Jane Doe, a directory ~jdoe1/www/images), this can be linked as an absolute reference as follows:

Absolute references will work only so long as the basic structure of your web pages and www directories do not change. So, if Jane were to move her Web pages to another directory, the reference would no longer point to the correct location.

A Relative Reference provides a partial http address in the form of a fragment of a partial or full directory pathname and file name. By default, if no server name or path is specified in html, the file reference is to the default current directory, which in the case of the User Web Server is any file within your www directory.

To use the example above, in relative references, Jane would specify the link as


In context, this might be in the form of a graphical reference, such as:

<IMG ALIGN=bottom SRC="/images/foo.gif">

for example, in the instance of defining a graphical button. The advantage in using relative references is that if you move your your Web pages to another directory, the references to other files that were moved are still valid, so you don't have to change every reference.

A Note on Symbolic Links

Unix users may be accustomed to using symbolic (or hard) links to use a single physical file as a source for two or more filenames. For example, you might name your home page "jane.html" but want this to be the default page, so use a symbolic link in Unix to make "index.html" point to "jane.html". (For more information on symbolic links, see the man pages for the unix commands ln and symlink in Polaris.)

Symbolic links are perfectly acceptable on the UserWeb server as long as they do not reference any file above your ~/www directory! This means if you symlink to a file that physically exists anywhere under your www directory, it will work. If, however, your html refers to a Symbolic (or hard) link to a file outside your ~/www directory, then it cannot be published. (you will get an error when this happens).

Why? Many items that are "publically" available within AFS to CMU users are site- licensed, restricted, or otherwise considered to be for Carnegie Mellon users only. Further, there are some serious performance issues for the server if it could potentially list out all files in AFS. Consequently, the UserWeb Server does not allow linking of files that are not within the /www root directory.

If you need to make a link to a Project Volume, a friend's files, or other external AFS file, the simple solution is to have whoever owns that file publish it as an html file on either this server or any other web server, and use an absolute reference to access the document.