webForumDet fria alternativet

"länka" html-dokument i html-dokument

13 svar · 952 visningar · startad av mantralord

mantralordMedlem sedan sep. 200711 inlägg
#1

Tänkte bara kolla om det finns nåt enkelt sätt att göra nåt i stil med

<div id="header">
<jsp:include page="header.html" />
</div>
<div id="nåt annat skoj">
<jsp:include page="nåtannat.html" />

fast inte med jsp då...är ju inget krångligt problem men har inte lyckats hitta något html-kommando för det men antar att det finns? Lite smidigare så man slipper ändra i alla sina filer =)

colioneMedlem sedan juni 20014 421 inlägg
#2

Nej, något sådan finns inte i html. Det går att lösa med javascript. Annars är SSI (serverside includes) populärt då de flesta webhosts har stöd för det även om det inte finns stöd för andra programmeringsspråk.

http://en.wikipedia.org/wiki/Server_Side_Includes

jarvkloMedlem sedan juli 20013 378 inlägg
#3

Hmm...

Det *finns* faktiskt en mekanism för generell inkludering av dokument i (X)HTML om man skall vara petpoga - <object> närmare bestämt - men stödet för inkludering av (X)HTML-dokument är minst sagt uselt i "en av de större" webbläsarna av idag (så det är ingen dum idé att göra sån't här på serversidan istället som påpekades ovan).

Exempel:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Ett av Jarvklos exempel</title>
</head>
<body>
<object data="inkluderat.html">Inkluderingen misslyckades</object>
</body>
</html>

Testa (funkar i FireFox och Opera ivf ;) )

mantralordMedlem sedan sep. 200711 inlägg
#4

Hmm tyvärr funkar inte SSI på min webhost :S gammal teliaserver tror jag det är hmm. Har ingen större lust att "copy&paste" länkar/headers/footers på alla mina sidor suck, finns det verkligen inget smidigt sätt att göra det på? utan att använda javascript för att bygga upp dessa? Hur gör alla andra?

CompusaMedlem sedan jan. 20023 327 inlägg
#5

mantralord skrev:

Hur gör alla andra?

Använder sig av en teknik som bearbetar sidan på på server-sidan innan den skickas till klienten, exempelvis: PHP, ASP, ASP.NET, JSP och SSI. En html-sidan är statisk därav omöjligheten.

jarvkloMedlem sedan juli 20013 378 inlägg
#6

Hmm...
Om du inte kan/vill använda serversidan blir det knepigare...

Men det finns sådana funktioner i både MS expression web och Dreamweaver om du väljer att "handjaga" och har resurserna/viljan att använda en av de stora (relativt dyra) "drakarna"

Om du känner för att testa att redigera med http://jedit.org - har den en plugin till den som hanterar inkluderingar vid spara http://plugins.jedit.org/plugins/?IncludesParser som jag har testat och haft hyfsade erfarenheter av.

Finns *säkert* fler opensource-redigerare med "template"- eller "include"-funktionalitet som gör inkluderingarna när du sparar dina filer därute också om du letar ;)

En annan id'e är att t.ex. installera MovableType i en Apache-server lokalt på din dator och kopiera upp de filer som den genererar (MT bygger alltså statiska sidor om du inte ställer in den för något annat)...

Men, som Compusa säger, de flesta av oss kör nog antagligen med sidor som genereras "on demand" av något serverside-språk...

mantralordMedlem sedan sep. 200711 inlägg
#7

Haha vad skabbigt...ändrade bara från .html till .asp så funkade allt ^^
tydligen uppfattade inte servern

<!--#include virtual="logo.html"-->

när det stod i en .html...funkade dock på annan server, knepigt.

colioneMedlem sedan juni 20014 421 inlägg
#8

Inte så konstig. Ena hosten stödjer ssi den andra stödjer ASP, kommandot ser likadant ut i båda.

symbolismMedlem sedan mars 2007522 inlägg
#9

mantralord skrev:

Haha vad skabbigt...ändrade bara från .html till .asp så funkade allt ^^
tydligen uppfattade inte servern

<!--#include virtual="logo.html"-->

när det stod i en .html...funkade dock på annan server, knepigt.

hmm... för att kunna köra SSI måste du ändra filnamnet till .shtml respektive .shtm. Sidan som du inkluderar får inte ha några av de huvudkommandon som redan fins på "huvudsidan" dvs inga <head></head> eller <body></body> taggar. Det är kanske därför det inte fungar.

alltså:

huvudsidan måste ha filändelsen shtm eller shtml och på huvudsidan inkluderar du externa dokument via
<!--#include file=""--> eller <!--#include virtual=""-->

tilläggsfilerna får inte ha några viktiga anatomiska taggar. Filändelsen kan vara .htm eller .html eller vadsomhelst. Jag kör alltid .htm

På min sida infogas reklam, copyright text och menyn med SSI (om du ser på filändelsen i addressfältet så står det .shtml)- skitsmidigt., Kommer nog byta till PHP när tiden ges dock. http://www.gurkean.com är min sida om du vill se.

Danne VMedlem sedan aug. 20068 090 inlägg
#10

symbolism skrev:

hmm... för att kunna köra SSI måste du ändra filnamnet till .shtml respektive .shtm. Sidan som du inkluderar får inte ha några av de huvudkommandon som redan fins på "modersidan" dvs inga <head></head> eller <body></body> taggar. Det är kanske därför det inte fungar.

På min sida infogas reklam, copyright text och menyn med SSI (om du ser på filändelsen i addressfältet så står det .shtml)- skitsmidigt., Kommer nog byta till PHP när tiden ges dock. http://www.gurkean.com är min sida om du vill se.

Nja... det är inte den inkluderade filen (dvs den som ska "dras in") som helst ska kallas "shtml" eller "shtm". Den kan heta precis vad som helst. Jag brukar kalla dom ".include" för att hålla reda på dom.

Det är "föräldrafilen", dvs den fil som har include-länken, som normalt bör kallas "shtml" eller "shtm" så att servern vet att den ska parsa efter SSI.

Men en del servrar har numera detta som default, dvs ALLA html-filer parsas för SSI, även de som heter "html" eller "htm".

Bara ett påpekande....

symbolismMedlem sedan mars 2007522 inlägg
#11

Danne V skrev:

Nja... det är inte den inkluderade filen (dvs den som ska "dras in") som helst ska kallas "shtml" eller "shtm". Den kan heta precis vad som helst. Jag brukar kalla dom ".include" för att hålla reda på dom.

Det är "föräldrafilen", dvs den fil som har include-länken, som normalt bör kallas "shtml" eller "shtm" så att servern vet att den ska parsa efter SSI.

Men en del servrar har numera detta som default, dvs ALLA html-filer parsas för SSI, även de som heter "html" eller "htm".

Bara ett påpekande....

hmmm.... trodde att jag hade klargjort i inlägget men tydligen inte - ändrar därför

Jag visste dock inte att man kunde döpa includefilerna till vadsomhelst=)

Danne VMedlem sedan aug. 20068 090 inlägg
#12

symbolism skrev:

Jag visste dock inte att man kunde döpa includefilerna till vadsomhelst=)

Mjae.... :OO Det blev ju lite dumt det där. I princip kan du det. Men det beror självklart på hur servern är konfigurerad. Normalt accepteras vilken filändlse som helst, i alla fall i de servrar jag kommit i kontakt med under årens lopp. Men det KAN ju finnas en och annan host som hittat på nåt annat. Så det är ju inte hugget i sten.

colioneMedlem sedan juni 20014 421 inlägg
#13

Dessutom så ska du se till att du har lagt den som server parsed, antingen via en .htaccess fil eller direkt-konfat på servern. Har du mot förmodan nån typ av känslig info i include filen så kan man ganska enkelt få reda på det om den inte parseas av servern först.

qleblatMedlem sedan jan. 200822 inlägg
#14

Drar ioförsig helt fräckt upp en gammal tråd nu men tipset om ssi här är något jag vill testa på en site jag bygger just nu.

Siten är ioförsig klar, en table röra där meny header och footer finns på varende sida. Jag kom in i bilden halvvägs och såg inte mycket meningen med att bygga om den från scratch då det handlade om cirka två hundra sidor.

I vilket fall, säg att servern jag använder fixar ssi, skulle det vara väldigt krävande att använda sig av detta just för serven? Den ligger på en server jag antagit inte är något kvalitets alternativ precis.

139 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)