I dont want to get too technical with ya, but basically starting a path with a / just means to begin at the root. And generally virtual directories are in the root to make things easier, thats their whole point. SO you usually refer to virtual directories like /virtualDir/......
A virtual directory is basically just a 'made-up' mapping (usually easier) onto a real directory. So I could have my menu js files in ...com/includes/milonic/v5/menu/sources/ directory, but thats just a mouth full so I can tell the server, 'hey, whenever I say "/menu/" I want you to think "/includes/milonic/v5/menu/sources/", got it server?' This just makes life alot easier, and technically there is no /menu/ directory in the root, but virtually there is because the server will swap in the longer mapping. And another great thing about them is, the files you want the virtual directory to point to dont have to be inside the wwwroot directory, they could be in your My Documents folder for example. They give you the ablility to publish things to the web without having to move them over to the wwwroot directory. (BTW, wwwroot is the default directory on MS servers for the root of the web directory)
And the slash before a directory, as I said tells the server to start looking for these files beginning from the root...no matter where the page may exist in the directory structure. Like John said, the ../../ gets crazy because its all relative. You move the file that says ../../ to another directory, and ../../ could mean a totally different thing. /menu/ will always means the same thing no matter what directory I say it from.
Whew, class dismissed!
ADDENDUM - Got it John!
