pad in root map met of zonder slash

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ozzie PHP

Ozzie PHP

16/01/2013 01:36:26
Quote Anchor link
Kort vraagje. Stel ik heb deze directorystructuur en ik wil plaatje.png aanroepen...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
.../public_html/afbeeldingen/plaatje.png

Als ik een relatief pad gebruik dan kan ik dit doen:

<img src="afbeeldingen/plaatje.png">

maar ook dit:

<img src="/afbeeldingen/plaatje.png">

Het werkt allebei, maar ik vraag me af of er verschil in zit. Wat is de juiste manier?
 
PHP hulp

PHP hulp

04/12/2024 09:34:25
 
Bas  van de Steeg

Bas van de Steeg

16/01/2013 05:48:50
Quote Anchor link
Als "afbeeldingen/plaatje.png" gebruikt en je bijvoorbeeld op de pagina: "http://host.nl/" zit dan word de link dus:
"http://host.nl/afbeeldingen/plaatje.png"

En wanneer je "/afbeeldingen/plaatje.png" dan word je link : http://host.nl//afbeeldingen/plaatje.png
En dit vind ik zelf ook minder mooi, het kan trouwens ook zo zijn dat het bij sommige host niet werkt. Omdat hij er dan vanuit gaat dat er tussen // nog een directory zit die er niet is. En dan kan hij het plaatje niet vinden.

En misschien maar dat weet ik niet zeker is "http://host.nl//afbeeldingen/plaatje.png" langzamer. Omdat hij // ziet staan en dat kent hij niet dus moet hij er iets van maken en dit kost iets tijd.

Ik zelf gebruik altijd "<img src="afbeeldingen/plaatje.png">" omdat ik vaak genoeg gehad heb dat mijn host het bestand anders niet kan vinden.
Gewijzigd op 16/01/2013 05:49:52 door Bas van de Steeg
 
Koen Vlaswinkel

Koen Vlaswinkel

16/01/2013 07:09:28
Quote Anchor link
Ik gebruik daarintegen juist /afbeeldingen/plaatje.png. Dit doe ik omdat als een browser iets als directory herkent, het plaatje niet gevonden wordt. Dus als je op host.nl/downloads/ denkt de browser dat het plaatje staat op host.nl/downloads/afbeeldingen/plaatje.png terwijl hij gewoon staat op host.nl/afbeeldingen/plaatje.png. Daf kan je dus aanroepen met /host/plaatje.png. Oftewel, een slash ervoor betekent dat de browser zoekt in de root van je domein, dus relatief naar host.nl.
 
Wouter J

Wouter J

16/01/2013 07:54:33
Quote Anchor link
Bas, de url wordt echt niet host.nl//afbeelding hij wordt dan gewoon host.nl/afbeelding. Het verschil is dat de 1 relatief is en de ander absoluut. Ik hou meer van de absolute, dan weet je zeker dat hij altijd goed is, waar je het HTML bestandje ook naartoe verschuift.
 
No One

No One

16/01/2013 11:04:52
Quote Anchor link
plus...als je in www.host.nl/downloads/info/ zit....en de plaatjes zitten in /downloads/afbeeldingen/....kun je met ../ een stapje terug... je hebt ook nog ./ om het pad relatief te maken zodat ie weet dat je toch echt www.host.nl/downloads/afbeeldingen/afbeelding.png bedoeld... en niet www.host.nl/afbeeldingen/afbeelding.png
Gewijzigd op 16/01/2013 11:06:40 door No One
 
Ward van der Put
Moderator

Ward van der Put

16/01/2013 12:41:25
Quote Anchor link
Beetje off-topic maar voor de volledigheid: de Google HTML/CSS Style Guide adviseert om het protocol weg te laten bij verwijzingen naar afbeeldingen en andere mediabestanden.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!-- Not recommended -->
<script src="http://www.google.com/js/gweb/analytics/autotrack.js"></script>

<!-- Recommended -->
<script src="//www.google.com/js/gweb/analytics/autotrack.js"></script>

/* Not recommended */
.example {
  background: url(http://www.google.com/images/example);
}

/* Recommended */
.example {
  background: url(//www.google.com/images/example);
}
 
Ozzie PHP

Ozzie PHP

16/01/2013 14:17:39
Quote Anchor link
No One op 16/01/2013 11:04:52:
je hebt ook nog ./ om het pad relatief te maken

Hoer werkt dat met "./" ?

Ward van der Put op 16/01/2013 12:41:25:
Beetje off-topic maar voor de volledigheid: de Google HTML/CSS Style Guide adviseert om het protocol weg te laten bij verwijzingen naar afbeeldingen en andere mediabestanden.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!-- Not recommended -->
<script src="http://www.google.com/js/gweb/analytics/autotrack.js"></script>

<!-- Recommended -->
<script src="//www.google.com/js/gweb/analytics/autotrack.js"></script>

/* Not recommended */
.example {
  background: url(http://www.google.com/images/example);
}

/* Recommended */
.example {
  background: url(//www.google.com/images/example);
}

Ik denk dat dat is omdat de browser dan zelf aanvult met http of https. Dit zou je echter in PHP kunnen ondervangen in je html bestanden. In de css wordt dat lastig.

Is dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
.example {
  background: url('http://www.mijnsite.nl/afbeeldingen/plaatje.jpg');
}


eigenlijk hetzelfde als dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
.example {
  background: url('/afbeeldingen/plaatje.jpg');
}
 
Ward van der Put
Moderator

Ward van der Put

16/01/2013 14:27:11
Quote Anchor link
Ozzie PHP op 16/01/2013 14:17:39:
Is dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
.example {
  background: url('http://www.mijnsite.nl/afbeeldingen/plaatje.jpg');
}


eigenlijk hetzelfde als dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
.example {
  background: url('/afbeeldingen/plaatje.jpg');
}


Als één host meerdere domeinnamen heeft, kan de tweede URL verwijzen naar bijvoorbeeld http://www.example.com/afbeeldingen/plaatje.jpg. En zoals je zelf al terecht opmerkt: de eerste URL gaat bij https:// problemen geven.

Afbeeldingen die in CSS worden gebruikt, plaats ik zelf liever in dezelfde directory, zodat paden en protocol helemaal niet in de weg zitten. Bovendien kun je dan voor CSS-bestand en bijbehorende afbeeldingen gemakkelijker dezelfde caching instellen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
.example {
  background: url('plaatje.jpg');
}
 
Ozzie PHP

Ozzie PHP

16/01/2013 14:37:48
Quote Anchor link
Oké, maar als je met submappen werkt... zoiets

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
.../public_html/afbeeldingen/plaatje.jpg
               /css


Maakt het dan nog iets uit of je dit...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
.example {
  background: url('http://www.mijnsite.nl/afbeeldingen/plaatje.jpg');
}


dit...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
.example {
  background: url('/afbeeldingen/plaatje.jpg');
}


of dit doet?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
.example {
  background: url('../afbeeldingen/plaatje.jpg');
}


Is het een sneller / beter dan het ander? Ik denk dat optie 2 de beste is?
Gewijzigd op 16/01/2013 14:42:19 door Ozzie PHP
 
Bart V B

Bart V B

16/01/2013 14:55:18
Quote Anchor link
Of ik mis een truukje, of mijn theorie is niet meer up to date..

Hebben we het hier over een Windows systeem of Linux?

Want doorgaans is het bij een Linux systeem zo dat: /path/afbeelding.png meestal niet daar staan.
Althans ik heb mijn plaatjes niet in / staan.

dus logisch gezien is het ../path/plaatje.png wat wil zeggen 2 stapjes terug. Of ./path/plaatje.png wat zegt 1 stapje terug.

Wil je zeker ervan zijn url/path/plaatje.png
Maar /map/plaatje.png lijkt me niet goed.

Toevoeging op 16/01/2013 14:55:25:

Of ik mis een truukje, of mijn theorie is niet meer up to date..

Hebben we het hier over een Windows systeem of Linux?

Want doorgaans is het bij een Linux systeem zo dat: /path/afbeelding.png meestal niet daar staan.
Althans ik heb mijn plaatjes niet in / staan.

dus logisch gezien is het ../path/plaatje.png wat wil zeggen 2 stapjes terug. Of ./path/plaatje.png wat zegt 1 stapje terug.

Wil je zeker ervan zijn url/path/plaatje.png
Maar /map/plaatje.png lijkt me niet goed.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

16/01/2013 15:12:41
Quote Anchor link
Stel ik heb het volledige pad: http://www.example.com/examples/index.php
De link /images/somepicture.png is dan eigenlijk http://www.example.com/images/somepicture.png, dus relatief naar de root van de website
images/somepicture.png is relatief naar de map waar index.php instaat
 
Ward van der Put
Moderator

Ward van der Put

16/01/2013 15:19:04
Quote Anchor link
Geen Windows of Linux, maar HTTP/1.1. URL's zijn gestandaardiseerd in paragraaf 3.2 van RFC 2616. Een relatief pad moet door de webserver inderdaad worden behandeld als een absoluut pad met / voor de root:

“Note that the absolute path cannot be empty; if none is present in the original URI, it MUST be given as "/" (the server root).”
Gewijzigd op 16/01/2013 15:19:31 door Ward van der Put
 
Ozzie PHP

Ozzie PHP

16/01/2013 16:15:21
Quote Anchor link
Bedankt voor de reacties, maar nu weet ik nog steeds het antwoord niet. Als we uitsluitend deze 2 opties bekijken, welke optie heeft dan de voorkeur. Optie 1 of 2?

optie 1

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
.example {
  background: url('/afbeeldingen/plaatje.jpg');
}


optie 2

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
.example {
  background: url('../afbeeldingen/plaatje.jpg');
}


(Die laatste optie weet ik eigenlijk niet zeker of die klopt. Ik ga er dan vanuit dat je in de css map zit, en dan 1 map omhoog gaat, en dan de afbeeldingen map ingaat.)
 
Ward van der Put
Moderator

Ward van der Put

16/01/2013 16:23:07
Quote Anchor link
Optie 1, want / voor de root verwijst altijd naar hetzelfde bestand. Bij optie 2 werkt het CSS-bestand niet meer foutloos als je het zou verplaatsen naar een subdirectory.

Maar omdat in CSS gebruikte afbeeldingen geen content maar presentatie zijn én omdat de CSS-code bepaalt hoe en wanneer ze worden getoond, zou ik ze dus in de directory met de bijbehorende CSS-bestanden opslaan.
 
Wouter J

Wouter J

16/01/2013 16:23:11
Quote Anchor link
Quote:
(Die laatste optie weet ik eigenlijk niet zeker of die klopt. Ik ga er dan vanuit dat je in de css map zit, en dan 1 map omhoog gaat, en dan de afbeeldingen map ingaat.)

En daarom is optie 1 dus beter. Niet omdat de een 'een heeeeeel erg klein beetje' sneller is dan de ander, maar omdat de één veel duidelijker is dan de ander.
 
Ozzie PHP

Ozzie PHP

16/01/2013 16:29:30
Quote Anchor link
@Ward: oké! Ik laat de afbeeldingen wel in een aparte map staan. Dat vind ik persoonlijk handiger dan css en afbeeldingen door elkaar. Kwestie van persoonlijke voorkeur.

@Wouter: helder :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.