webForumDet fria alternativet

Varför funkar en root-relaterad länk, men inte en annan?

HTML & CSS

5 svar · 555 visningar · startad av Danne V

Medlem sedan aug. 20068 090 inlägg
Frågan#1

Håller på med en ganska omfattande sajt om måste ha alla länkar root-relaterade för enklast möjliga hantering vid bl.a. flytt av hela sajten osv.

Men jag fattar inte varför somliga länkar funkar galant som root-relaterade, medan andra på samma sida INTE funkar alls.

Exempel på länkar på samma sida. Mapparna "img" och "resources" ligger i root (högst i hierarkin):

img src="/img/header-travel-asia.jpg" Funkar.
link href="/resources/styles/main.css" Funkar
<?php include('/resources/footer.include'); ?> Funkar inte. :( utan måste vara <?php include('../../../resources/footer.include'); ?> (eller kanske nån annan root-relaterad väg.

Medlem sedan juli 20013 378 inlägg
#2

Adresserna i <img> och <link> är URL:ar dvs de evalueras av webbläsaren när sidan levererats och absoluta adresser går mot webbplatsens "rot" (dvs http://example.com)

include är en php-funktion som körs på serversidan, och när den körs är det filstrukturen på serverns diskar som gäller som adressering (och det är inte samma "filsystem" som webbplatsens URL-struktur, som du konstaterat)

"/" för include är t.ex. "C:\" om du kör Windows, och inte "C:\inetpub\wwwroot" som brukar motsvara webbplatsens toppnivå, dvs som är "/" för webbplatsens URL-adresser

Kör du Unix antar att du kan försöka med /home/mittkonto/public_html/resources/footer.include (eller vad som gäller på din server) om du vill ha en absolut adress till din includefil.

Ett annat alternativt är att se till att katalogen där dina inkluderingar finns, alltid finns med i include_path (för då slipper du bry dig om var de egentligen ligger) - men det förutsätter att du har rätt att ändra include_path på din server...

Flera tips finns i kommentarerna till http://se.php.net/manual/en/function.include.php
och http://se.php.net/manual/en/ini.core.php#ini.include-path

Medlem sedan okt. 20005 273 inlägg
#3

Du har skrivit helt rätt vad det gäller html om man ska utgå ifrån rooten :)

Angående PHP:n så får du nog rätt svar om du frågar(eller om någon moderator flyttar) din fråga till rätt forum

mv icaaq

Medlem sedan aug. 20068 090 inlägg
#4

jarvklo skrev:

Adresserna i <img> och <link> är URL:ar dvs de evalueras av webbläsaren när sidan levererats och absoluta adresser går mot webbplatsens "rot" (dvs http://example.com)

include är en php-funktion som körs på serversidan, och när den körs är det filstrukturen på serverns diskar som gäller som adressering (och det är inte samma "filsystem" som webbplatsens URL-struktur, som du konstaterat)

"/" för include är t.ex. "C:\" om du kör Windows, och inte "C:\inetpub\wwwroot" som brukar motsvara webbplatsens toppnivå, dvs som är "/" för webbplatsens URL-adresser

Kör du Unix antar att du kan försöka med /home/mittkonto/public_html/resources/footer.include (eller vad som gäller på din server) om du vill ha en absolut adress till din includefil.

Ett annat alternativt se till att katalogen där dina inkluderingar finns, alltid finns med i include_path (för då slipper du bry dig om var de egentligen ligger) - men det förutsätter att du har rätt att ändra include_path på din server...

Flera tips finns i kommentarerna till http://se.php.net/manual/en/function.include.php
och http://se.php.net/manual/en/ini.core.php#ini.include-path

Kanonbra och klargörande svar! tack!

Medlem sedan aug. 20068 090 inlägg
#5

icaaq skrev:

Du har skrivit helt rätt vad det gäller html om man ska utgå ifrån rooten :)

Angående PHP:n så får du nog rätt svar om du frågar(eller om någon moderator flyttar) din fråga till rätt forum

mv icaaq

Eftersom det är BÅDE vanlig html OCH php så blir det ju lite kinkigt....är det inte en aning opraktiskt att dela upp frågan och krångla med korslänkar från båda inläggen så att folk ska förstå sammanhanget i så fall?

Men om det är fler som tycker att det ska flyttas, så flytta på bara... :)

Medlem sedan okt. 20005 273 inlägg
#6

Jag skrev mitt inlägg innan jag sett Jarvklo's inlägg. Och påpekade att du skrivit rätt angående HTML:n.

Nu har Jarvklo gett dig ett svar på båda frågorna så nu anser jag inte att tråden skall flyttas eller korspostas.

Cheers.

mv icaaq

256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)