As merlin states above, it is all about the browser.
Your apache configuration defines a mapping that creates a virtual directory tree in web space. In it's stock form, I believe that apache maps something like this (images directory from your example):
| Web path | Disk path |
|---|---|
| / | $SERVER_ROOT/htdocs |
| /cgi-bin | $SERVER_ROOT/cgi-bin |
| /my_imgs/pic.jpg | $SERVER_ROOT/htdocs/my_imgs/pic.jpg |
So, when your cgi script (href=/cgi-bin/myscript.cgi) runs, the relative path "../my_imgs/pic.jpg" would refer, from the browser's perspective, to /cgi-bin/../my_imgs/pic.jpg, or /my_imgs/pic.jpg, which is what you have as the absolute path.
Hope this helps.
Update (2009/11/20 11:36 GMT-0500): Whoops. s/\$DOCUMENT_ROOT/$SERVER_ROOT/g; $SERVER_ROOT == ServerRoot setting in httpd.conf. $DOCUMENT_ROOT = $SERVER_ROOT/htdocs.
--MidLifeXis
In reply to Re^2: (OT) cgi: relative v. absolute paths, Apache
by MidLifeXis
in thread (OT) cgi: relative v. absolute paths, Apache
by 7stud
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |