Hoi Marc,
Als je een
<base href="..."> op een pagina opneemt, dan geldt dat voor
alle links/bronvermeldingen naar relatieve bestanden/pagina's (die dus niet zelf ook met "http://..." beginnen, maar met "mapjenaam/submapjenaam/bestandsnaam.bestandsextensie").
Dus het geldt zowel voor een stylesheet of javascript-verwijzing in de <head>, als voor een vindplaats voor een image, als voor een link naar iets anders in de inhoud van de pagina.
In m'n voorbeeld-sitemap heb ik de <base href="http://www.digitreport.com/"> er zo in gezet, omdat je dan de sitemap niet perse in de root van de site hoeft te zetten, maar desgewenst ook ergens anders: zonder dat er iets in de code hoeft te veranderen (zolang het logo en de pagina's maar in de mapjes zitten die in de links staan).
Het klopt ook, dat er in de sitemap geen link naar je stylesheet gemaakt wordt. Ik vond het wel zo eenvoudig om de paar styles die nodig zijn voor deze sitemap-pagina rechtstreeks in de <head> van de pagina te zetten. Op deze manier is de pagina onafhankelijk van de rest van de css-opmaak, en kan je in je gewone css-stylesheet alles veranderen zonder dat je rekening hoeft te houden met de opmaak van deze sitemap.
Eigenlijk kan de sitemap het helemaal zonder opmaak stellen voor de goede werking: een zoekmachine-robot ziet er toch niets van. Ook het logo had gemist kunnen worden.
Maar omdat het oog ook wat wil, heb ik er een minimale opmaak in gezet die aansluit bij de stijl van de rest van de site.
Naar smaak kan je die natuurlijk aanpassen door er twee kolommen van te maken, enz.
Zodoende!
Met vriendelijke groet,
CSShunter
PS
Je kunt het <base href="..."> systeem ook toepassen op andere pagina's. Zoals That Guy al aangaf, kan dat bijzonder handig zijn.
Neem bv. de pagina
Toervakantie 2010, die nu als
http://www.digitreport.com/vakantie1.php direct in de root van de site zit. De links naar stylesheet, images en andere pagina's zitten er nu relatief in (t.o.v. de map waar de pagina in staat):
HTML:
<link rel="stylesheet" type="text/css" href="css/frame.css">
...
<a id="logo" href="index.php"><img
src="logo/logo_top.jpg" width="315" height="99" alt="logo"></a>
...
enz.
Als je later bij een groeiende site voor een betere archivering deze pagina in een nieuw mapje
digitreport.com/vakantie-2010/ wilt zetten (bv. omdat er later nog een parallel-pagina "
Kerstvakantie 2010" verschijnt, of een parallel-map "
vakantie-2011" enz.), zou je al deze interne links moeten aanpassen, d.w.z. eerst een mapje omhoog (om op root-niveau te komen), en dan weer afdalen:
HTML:
<link rel="stylesheet" type="text/css" href="../css/frame.css">
...
<a id="logo" href="../index.php"><img
src="../logo/logo_top.jpg" width="315" height="99" alt="logo"></a>
...
enz.
Maar als je in de head van de pagina
<base href="http://www.digitreport.com/"> opneemt, ben je in 1 klap van alles af. Dan blijven alle links relatief, maar wel ten opzichte van wat er in de <base> staat.
Als alle andere dingen op dezelfde plek blijven staan, kan je de pagina dus straffeloos (= zonder aanpassing van alle relatieve links op de pagina) overal op je site neerzetten, in welke (nieuwe) (sub)(sub)map je ook maar wilt.
Wil je na een paar jaar een pagina nog eens verhuizen naar een andere mapje, dan hoef je je er ook niet om te bekommeren of de interne links dan nog wel kloppen: je sleurt 'm gewoon naar z'n nieuwe mapje en het gaat automatisch goed.
En bij pagina's op verschillend map-niveau kan je bv. voor het menu dezelfde php-include blijven gebruiken.
Kortom: die <base> is voor luie mensen!