ohjeita web-sivuston tekijälle
Lyhyesti: Vähennä omaa vaivaasi ja anna tekniikan hoitaa joka sivulle yhtäläiset elementit.
Kokeneemmat web-sivustojen rakentajat ovat varmasti huomanneet, miten kova työ on muuttaa jokaisen sivun ylä- tai alaosaa esimerkiksi vain yhden linkin lisäämiseen navigaatioon. Jos näitä muutoksia tulee jatkuvasti, olisi kiva, että muutokset voisi tehdä keskitetysti yhdestä paikkaa.
Apache -palvelinohjelmiston Server Side Includes (SSI) tarjoaa tähän ratkaisun. SSI on HTML-koodin sekaan lisättäviä komentoja, joilla voidaan ajaa CGI-skriptejä, tulostaa ympäristömuuttujia tai sisällyttää kokonaisia tiedostoja koodin sekaan. Tässä vinkissä keskitymme tähän tiedostojen liittämisominaisuuteen.
Luomalla kaksi tiedostoa, yksi ylä- ja toinen alaosaksi pääsemme mainitsemastamme ongelmasta. Kun nämä tiedostot liitetään jokaisen sivustolla olevan dokumentin alkuun ja loppuun, syntyy automaattisesti kaikkialle päivittyvä sivurunko. Yläosan tiedostoon on perinteisesti laitettu graafista ulkoasua ja navigaatiota siitä syystä, että useimmiten nämä elementit ovat pikemminkin ennen tekstisisältöä kuin sen jälkeen. Alaosan tiedostoon on hyvä lisätä muun muassa sivun ylläpitäjän kontaktitieto ja automaattinen päivitysajankohdan lisääjä.
Ensiksi SSI tulee kytkeä päälle jos niin ei ole palvelimen konfiguroinneissa jo tehty. Tämä onnistuu lisäämällä .htaccess-asetustiedostoon seuraava rivi:
AddType text/x-server-parsed-html .shtml
Tällä asetuksella jokainen tiedosto, joka päättyy .shtml-päätteeseen parsitaan palvelimella SSI-kutsuista ennen selaimelle lähettämistä. Jos kaikki sivut tulevat käyttämään SSI:tä, voit samalla kytkeä SSI-kutsut parsittaviksi kaikista .html -päätteisistä tiedostoista tai mikä ikinä onkaan suosimasi tiedostopääte.
SSI-kutsu tiedoston liittämiseen kulkee seuraavasti:
<!--#include virtual="tiedosto"-->
Luokaamme kolme esimerkkitiedostoa, yksi yläosalle, yksi varsinaiselle sivulle ja yksi alaosalle.
<html> <head> <title>esimerkkisivu</title> </head> <body>
<!--#include virtual="ylaosa.html"--> <p>Tässä tekstisisältöä</p> <!--#include virtual="alaosa.html"-->
</body> </html>
Kun avaat sivun ssiliitos.shtml, liittyvät ylä- ja alaosien dokumenttiin. Voit nyt luoda lisää ssiliitos.shtml:n kaltaisia sivuja ja kun haluat tehdä muutoksia ylä- tai alaosiin, kosket vain kahteen tiedostoon.
Tämä sivu on luotu 18.5.2001.
Eikös ssiliitos.html pitäis olla ssiliitos.shtml? :)
22.1.2004 15:56Kyllähän sen pitäisi olla. Ja nyt onkin. Tarkkaavaisuutta... Kiitos huomautuksesta.
24.5.2006 23:25Eikös vastaavaan toiminnallisuuden saa käyttöön myös PHPllä? Esimerkiksi require:lla tai jos tahtoo välttää koodin keskeytymistä (virheilmoituksista ei kyllä pääse eroon) niin sitten include:lla.
Ei tarvitse käyttää useita eri tekniikoita samoilla sivuilla...