Διαφορές σε Relative Path

Για να εκτελεστεί μία σελίδα PHP, απαιτείται ένας web server(πχ. IIS, Apache). Έστω λοιπόν ότι το Document Root του υπολογιστή είναι το C:/www/ και ότι έχουμε την παρακάτω δομή:
Το index.php περιλαμβάνει τον παρακάτω κώδικα:
<html>
<head>
<link type="text/css" href="styles/style.css">
</head>
<body>
<?php
include("includes/header.php");
?>
</body>
</html>

Έστω λοιπόν ότι το header.php εκτυπώνει την εικόνα sample.jpg του φακέλου images στην οθόνη ενώ το style.css την βάζει background στη σελίδα.
Παρατηρούμε καταρχήν πως το φύλλο CSS γίνεται link ενώ το header.php γίνεται include.
Όταν κάνουμε include είναι σαν τον κώδικα της σελίδας που επιλέγουμε, να τον κάνουμε copy-paste στον κώδικα της σελίδας από την οποία εκτελούμε την εντολή include. Δηλαδή είναι σα να γράφαμε στο index.php:
<body>
<img src="image_path">
</body>

Εφόσον λοιπόν αναφερόμαστε στο αρχείο sample.jpg του φακέλου images, θα γράψουμε στο header.php
print('<img src="images/sample.jpg">');

Αντίθετα, όταν κάνουμε link ένα αρχείο CSS, οφείλουμε να κοιτάμε το path από το αρχείο που κάνουμε link και όχι από αυτό που καλούμε το αρχείο. Δηλαδή το αρχείο style.css θα έχει τον κώδικα:
body{
background-image:url(../images/sample.jpg);
}

Βλέπουμε λοιπόν, πως ενώ τα αρχεία header.php και style.css βρίσκονται στο ίδιο επίπεδο, αναφέρονται στο αρχείο sample.jpg με διαφορετικό relative path.

Comments

Popular Posts