Σχετική διαδρομή προς το αρχείο html. Απόλυτοι και σχετικοί σύνδεσμοι

01/11/07 44,5Κ

Όπως γνωρίζετε, στην παράμετρο href της ετικέτας () πρέπει να καθορίσετε τη διαδρομή προς το αρχείο στο οποίο αναφέρεται.
Πολλοί άνθρωποι γράφουν κάτι σαν http://somesite.ru/catalog/doc.html. Ναι, κανείς δεν διαφωνεί, λειτουργεί. Υπάρχει όμως ένα «αλλά». Ας δούμε ένα παράδειγμα.

Αφήστε τον ιστότοπό σας να φιλοξενείται, για παράδειγμα, σε κάποια δωρεάν φιλοξενία και η διεύθυνσή του ήταν η εξής: http://fsite.freehosting.ru.
Υπάρχουν περίπου 100 έγγραφα στον διακομιστή. Και έτσι αποφασίζετε να μετακινήσετε τον ιστότοπό σας σε άλλο τομέα,
αφήστε το να πληρωθεί φιλοξενία στη ζώνη ru: http://site.ru. Λοιπόν, πρέπει τώρα να αλλάξουμε το http://fsite.freehosting.ru σε http://site.ru παντού;
Ναι, χάρη σε συντάκτες όπως το homesite, αυτό είναι δυνατό. Αλλά αυτό δεν είναι λύση.
Ας υποθέσουμε ότι πριν ανεβάσετε μια σελίδα στον διακομιστή, ελέγχετε τη λειτουργικότητά της
στον οικιακό σας διακομιστή apache (για όσους δεν γνωρίζουν ακόμη τι είναι ο "οικιακός διακομιστής", μεταβείτε εδώ (Εγκατάσταση και ρύθμιση παραμέτρων διακομιστή apache) και αντί για http://localhost θα χρειαστεί να γράψετε http:// site.ru παντού Συμφωνώ με αυτό, τουλάχιστον είναι άβολο.

Η λύση είναι, όταν καθορίζετε τη διαδρομή προς ένα αρχείο, να λαμβάνετε υπόψη όχι τη θέση του στον ιστότοπο, αλλά τη θέση του στον διακομιστή.

Απόλυτη διαδρομή

Ας πάρουμε, για παράδειγμα, το αρχείο doc.html, το οποίο βρίσκεται στη διεύθυνση: http://somesite.ru/catalog/doc.html. Όπως γνωρίζετε, υπάρχει ένας φάκελος www στον διακομιστή. Όπως μπορούμε να δούμε από τη διεύθυνση, αυτός ο φάκελος περιέχει τον φάκελο του καταλόγου και περιέχει ήδη το αρχείο doc.html.

Εάν, κατά τον καθορισμό της διαδρομής προς ένα αρχείο, βάλετε / πριν από τη διεύθυνση, τότε θα είναι παρόμοια με την εξής: root_directory_in_the_north/www/path στο αρχείο.
Δηλαδή, το http://somesite.ru/catalog/doc.html είναι παρόμοιο με το ακόλουθο: /catalog/doc.html.
Έτσι, όταν υπάρχει ένα / μπροστά από τη διεύθυνση, σημαίνει ότι η «αντίστροφη μέτρηση» ξεκινά από τον κατάλογο www.
Τώρα, αντί για http://localhost/index.html, μπορείτε να γράψετε /index.html από οποιοδήποτε έγγραφο.
Αλλά για να φτάσετε στον κατάλογο cgi πρέπει να γράψετε αυτό: /cgi-bin/path στο αρχείο.

Οι διαδρομές που δημιουργούνται χρησιμοποιώντας τις μεθόδους που περιγράφονται παραπάνω ονομάζονται απόλυτες, επειδή υποδεικνύεται η απόλυτη (πλήρης) διαδρομή προς το αρχείο στον διακομιστή.

Σχετική διαδρομή

Υπάρχουν επίσης σχετικές διαδρομές, οι οποίες καθορίζονται σε σχέση με το ίδιο το έγγραφο από το οποίο προέρχεται ο σύνδεσμος.
Για παράδειγμα, εάν δημιουργήσετε έναν σύνδεσμο στο doc.html newcat/new.html, αυτό σημαίνει ότι το αρχείο new.html βρίσκεται στον κατάλογο newcat, ο οποίος, με τη σειρά του, βρίσκεται στον ίδιο κατάλογο με το αρχείο doc.html. Όπως μπορείτε να δείτε, αυτή η διαδρομή είναι σχετική με το αρχείο doc.html. Όπου κι αν βρίσκεται αυτό το αρχείο, η διαδρομή newcat/new.html θα είναι πάντα έγκυρη εάν το αρχείο doc.html και ο κατάλογος newcat βρίσκονται στο ίδιο επίπεδο (δηλαδή στον ίδιο κατάλογο).

Μπορείτε επίσης να μετακινήσετε έναν κατάλογο σε σχέση με ένα έγγραφο. Για να γίνει αυτό πρέπει να γράψετε ../.
Για παράδειγμα, υπάρχει ένας μεγάλος κατάλογος, περιέχει δύο καταλόγους: πρωτεύον και δευτερεύον. Ο κύριος κατάλογος περιέχει το ήδη γνωστό αρχείο doc.html. και στον δευτερεύοντα κατάλογο υπάρχει ένα αρχείο new.html. Για να δημιουργήσετε έναν σύνδεσμο από το αρχείο doc.html στο αρχείο new.html, πρέπει να γράψετε ../secondary/new.html. Αλλά εάν ο μεγάλος κατάλογος βρίσκεται στον κατάλογο www, τότε η διαδρομή προς το αρχείο new.html θα μπορούσε να καθοριστεί ως εξής: /big/secondary/new.html

Σε αυτό το σεμινάριο, θα εξηγήσουμε σε αρχάριους τι είναι η απόλυτη και σχετική διαδρομή προς ένα αρχείο και επίσης σε ποια περίπτωση είναι καλύτερο να χρησιμοποιήσετε. Εάν είστε ήδη εξοικειωμένοι με αυτό το θέμα, μπορείτε να προχωρήσετε στο επόμενο μάθημα.

Λοιπόν, ας ξεκινήσουμε με τον ορισμό του ίδιου του όρου «μονοπάτι»:

Διαδρομή (Αγγλική διαδρομή) - ένα σύνολο χαρακτήρων που δείχνει τη θέση του αρχείου στο σύστημα αρχείων, τη διεύθυνση του καταλόγου.

Βικιπαίδεια

Αν μιλάμε για ιστότοπους, τότε η διαδρομή είναι ίδια με τη σύνδεση. Οι σύνδεσμοι μπορεί να είναι απόλυτοι ή σχετικοί. Ας δούμε και τις δύο επιλογές με περισσότερες λεπτομέρειες.

Τι είναι μια απόλυτη διαδρομή αρχείου

https://www.google.com/images/branding/googlelogo.png

Η απόλυτη διαδρομή μπορεί να χρησιμοποιηθεί σε CSS. Για παράδειγμα, για να ορίσετε μια εικόνα ως φόντο, μπορείτε να πάρετε την απόλυτη διεύθυνση URL στο αρχείο εικόνας ΚΑΙ να την καθορίσετε στο φύλλο στυλ:

Εικόνα φόντου: url(http://www.example.com/img/bg.png);

Τι είναι μια σχετική διαδρομή αρχείου

Με μια σχετική διεύθυνση, όλα είναι πολύ πιο ενδιαφέροντα - μπορούν να μετρηθούν τόσο από τη ρίζα του ιστότοπου όσο και από το τρέχον έγγραφο. Σχετική διαδρομή ρίζας- αυτή είναι μια διαδρομή που υποδεικνύει τη θέση του αρχείου σε σχέση με τον ριζικό κατάλογο του ιστότοπου. Σε αυτήν την περίπτωση, η διεύθυνση δεν περιέχει ούτε πρωτόκολλο ούτε όνομα τομέα και ξεκινά με κάθετο / , που υποδεικνύει τον ριζικό φάκελο. Αυτή η διεύθυνση μοιάζει με αυτό:

Εικόνα φόντου: url(/img/bg.png);

Πώς να προσδιορίσετε εύκολα τη σχετική διεύθυνση ρίζας; Απλώς πάρτε έναν απόλυτο σύνδεσμο και αφαιρέστε το πρωτόκολλο και το όνομα τομέα από αυτό, αφήνοντας την κάθετο και όλους τους χαρακτήρες που ακολουθούν.

Σχετική διαδρομή αρχείου από έγγραφοείναι η διαδρομή προς το αρχείο σε σχέση με το τρέχον έγγραφο. Αυτή η διεύθυνση εξαρτάται από τη θέση του αρχείου στο οποίο έχει εγγραφεί. Έτσι, όταν ένας σχετικός σύνδεσμος καθορίζεται σε ένα φύλλο στυλ, υπολογίζει τη διαδρομή του αρχείου με βάση το φύλλο στυλ και όχι την τρέχουσα ιστοσελίδα ή τον ριζικό φάκελο. Ας δώσουμε μερικά παραδείγματα.

Παράδειγμα Ι

Εάν το φύλλο στυλ style.css και το αρχείο εικόνας φόντου bg.png βρίσκονται στον ίδιο φάκελο (όχι απαραίτητα στη ρίζα), τότε η σχετική διαδρομή από τον πίνακα προς την εικόνα θα μοιάζει με αυτό:

Φόντο-εικόνα: url(bg.png); /* απλά γράφεις το όνομα του αρχείου */

Παράδειγμα II

Εάν το φύλλο στυλ βρίσκεται στη ρίζα και η εικόνα στον φάκελο img, ο σχετικός σύνδεσμος θα είναι αυτός:

Εικόνα φόντου: url(img/bg.png); /* δεν χρειάζεται για κάθετο πρώτο */

Παράδειγμα III

Εάν το φύλλο στυλ βρίσκεται σε έναν φάκελο και η εικόνα βρίσκεται δίπλα σε αυτόν τον φάκελο, τότε η σχετική διαδρομή θα είναι η εξής:

Εικόνα φόντου: url(../bg.png); /* δύο τελείες - ανέβα ένα επίπεδο */

Παράδειγμα IV

Εάν το φύλλο στυλ βρίσκεται σε δύο φακέλους και το σχέδιο βρίσκεται δίπλα στον πρώτο φάκελο, τότε η σχετική διαδρομή θα είναι η εξής:

Εικόνα φόντου: url(../../bg.png); /* ανεβείτε δύο επίπεδα */

Δύο κουκκίδες και μια κάθετο στην αρχή της σχετικής διαδρομής σημαίνουν ανεβείτε ένα επίπεδο. Ανάλογα με τον αριθμό των επιπέδων (καταλόγων) στα οποία πρέπει να ανεβείτε, πρέπει να εισαγάγετε τον απαιτούμενο αριθμό κουκκίδων με κάθετες. Για παράδειγμα, εάν το φύλλο στυλ δεν βρίσκεται σε δύο, αλλά σε τέσσερις φακέλους, η καταχώρηση, κατά συνέπεια, θα είναι η εξής:

Εικόνα φόντου: url(../../../../bg.png);

Στην περίπτωση που η εικόνα είναι κρυμμένη στο φάκελο img και το φύλλο στυλ είναι κρυμμένο στο φάκελο css, θα χρειαστεί να βγείτε από το φάκελο css και να μεταβείτε στον φάκελο img. Τοιουτοτροπώς:

Εικόνα φόντου: url(../img/bg.png);

Εάν υπάρχουν πολλοί φάκελοι, πρέπει επίσης να τους καταχωρήσετε. Ας αλλάξουμε το προηγούμενο παράδειγμα: φανταστείτε ότι στον φάκελο img υπάρχει ένας άλλος φάκελος φόντου, ο οποίος περιέχει το σχέδιό μας. Η σχετική διαδρομή θα ήταν η εξής:

Εικόνα φόντου: url(../img/backgrounds/bg.png);

Ποιος τρόπος είναι καλύτερο να χρησιμοποιήσετε

Διεύθυνση απόλυτου συνδέσμουΘα χρειαστεί να το χρησιμοποιήσετε εάν το αρχείο στο οποίο συνδέεστε βρίσκεται σε άλλο ιστότοπο. Σε έναν ιστότοπο, η απόλυτη διαδρομή πρακτικά δεν χρησιμοποιείται (αν και θα λειτουργήσει). Αυτό οφείλεται σε πολλά σημεία: πρώτον, τέτοιοι σύνδεσμοι μπορεί να είναι πολύ δυσκίνητοι και δεύτερον, εάν αλλάξει το όνομα τομέα, θα προκύψει πρόβλημα - όλοι οι σύνδεσμοι θα οδηγήσουν στον παλιό τομέα, ο οποίος μπορεί να οδηγήσει σε πολλά σφάλματα και κατεστραμμένους συνδέσμους.

Σχετική διαδρομή ρίζαςθα λειτουργήσει σε διακομιστή web, αλλά είναι άχρηστο κατά την ανάπτυξη σε έναν τοπικό υπολογιστή. Αλλά το πλεονέκτημα αυτού του τύπου συνδέσμου είναι ότι μπορείτε να μετακινήσετε το φύλλο στυλ σας σε οποιονδήποτε φάκελο στον ιστότοπο και να μην φοβάστε μήπως σπάσουν οι διευθύνσεις URL της εικόνας φόντου.

Σχετική διαδρομή από το έγγραφο- η καλύτερη επιλογή για ανάπτυξη ιστού σε τοπικό μηχάνημα χωρίς χρήση διακομιστή. Στο πρόγραμμα περιήγησης, θα μπορείτε να βλέπετε ιστοσελίδες που είναι αποθηκευμένες στον υπολογιστή σας κανονικά και οι διευθύνσεις αρχείων θα λειτουργούν. Θα λειτουργήσουν σε μια ζωντανή τοποθεσία, αλλά με έναν όρο - εάν δεν μετακινήσετε το φύλλο στυλ σε άλλο μέρος (διαφορετικά θα πρέπει να προσαρμόσετε τις διαδρομές).

Δοκιμάστε να εξασκηθείτε χρησιμοποιώντας σχετικές διαδρομές τόσο στον τοπικό σας υπολογιστή όσο και στον διακομιστή ιστού σας. Η κατανόηση του πώς λειτουργεί αυτό σίγουρα θα σας φανεί χρήσιμο σε οποιοδήποτε έργο.

Περαιτέρω στο σεμινάριο:Ιδιότητα επανάληψης φόντου - ελέγχει την επανάληψη της εικόνας φόντου.

Η διεύθυνση του συνδέσμου μπορεί να είναι είτε απόλυτη είτε σχετική. Οι απόλυτες διευθύνσεις πρέπει να ξεκινούν με το πρωτόκολλο (συνήθως http://) και να περιέχουν το όνομα του ιστότοπου.

Οι σχετικοί σύνδεσμοι βασίζονται στη ρίζα του ιστότοπου ή στο τρέχον έγγραφο.

Το Παράδειγμα 8.2 δείχνει πώς να δημιουργήσετε έναν απόλυτο σύνδεσμο προς έναν άλλο ιστότοπο.

Παράδειγμα 8.2. Χρησιμοποιώντας απόλυτες αναφορές

Απόλυτη διεύθυνση



Εκμάθηση HTML Όταν καθορίζετε τον κατάλογο τοποθεσίας ως σύνδεσμο (για παράδειγμα, http://site/css/), εμφανίζεταιαρχείο ευρετηρίου

. Αυτό είναι το αρχείο που φορτώνεται από προεπιλογή κατά την πρόσβαση σε έναν κατάλογο χωρίς να προσδιορίζεται ρητά το όνομα του αρχείου. Συνήθως το αρχείο ευρετηρίου είναι ένα έγγραφο με το όνομα index.html. Οι απόλυτοι σύνδεσμοι χρησιμοποιούνται συνήθως για να παραπέμπουν σε ένα έγγραφο σε άλλο πόρο δικτύου, ωστόσο, είναι αποδεκτόαπόλυτους συνδέσμους

και μέσα στην τρέχουσα τοποθεσία.

Ωστόσο, αυτό δεν εφαρμόζεται συχνά, καθώς τέτοιοι σύνδεσμοι είναι αρκετά μεγάλοι και δυσκίνητοι. Ως εκ τούτου, οι σχετικοί σύνδεσμοι χρησιμοποιούνται κυρίως εντός του ιστότοπου.

Σύνδεσμοι σε σχέση με το τρέχον έγγραφο

Όταν δημιουργείτε σχετικούς συνδέσμους, πρέπει να καταλάβετε ποια τιμή πρέπει να καθορίσετε για το χαρακτηριστικό href, καθώς εξαρτάται από την αρχική θέση των αρχείων.

Ας δούμε μερικές τυπικές επιλογές. 1. Τα αρχεία βρίσκονται σε έναν φάκελο (Εικ. 8.4).Αυτό το όνομα αρχείου λαμβάνεται μόνο ως δείγμα στον ιστότοπο, οι ρωσικοί χαρακτήρες με κενά δεν πρέπει να χρησιμοποιούνται στα ονόματα αρχείων, ακόμη και σε διαφορετικές περιπτώσεις.

2. Τα αρχεία βρίσκονται στο διαφορετικούς φακέλουςαποθηκεύεται σε έναν φάκελο και ο σύνδεσμος βρίσκεται στη ρίζα του ιστότοπου, στη συνέχεια πριν από το όνομα του αρχείου στη διεύθυνση του συνδέσμου θα πρέπει να βάλετε δύο τελείες και μια κάθετο (/), όπως φαίνεται παρακάτω.

Δύο τελείες σε αυτή την περίπτωση σημαίνουν έξοδο τρέχον φάκελοένα επίπεδο ψηλότερα.

3. Τα αρχεία τοποθετούνται σε διαφορετικούς φακέλους (Εικ. 8.6).

Τώρα αρχείο προέλευσηςβρίσκεται σε δύο υποφακέλους και για να συνδεθείτε με το έγγραφο στη ρίζα του ιστότοπου, πρέπει να επαναλάβετε το προηγούμενο παράδειγμα δύο φορές.

Σύνδεσμος

Η κατάσταση είναι παρόμοια με οποιονδήποτε αριθμό υποφακέλων.

4. Τα αρχεία τοποθετούνται σε διαφορετικούς φακέλους (Εικ. 8.7).

Τώρα η κατάσταση αλλάζει, το αρχείο προέλευσης βρίσκεται στη ρίζα του ιστότοπου και το αρχείο στο οποίο πρέπει να συνδεθείτε βρίσκεται στο φάκελο. Σε αυτήν την περίπτωση, η διαδρομή προς το αρχείο θα είναι η εξής.

Σύνδεσμος

Σημειώστε ότι δεν υπάρχουν πρόσθετες τελείες ή κάθετες πριν από το όνομα του φακέλου.

Σύνδεσμος

Εάν το αρχείο βρίσκεται μέσα όχι σε έναν, αλλά σε δύο φακέλους, τότε η διαδρομή προς αυτό γράφεται ως εξής.

Σύνδεσμοι σχετικά με τη ρίζα του ιστότοπου Μερικές φορές μπορείτε να βρείτε τη διαδρομή προς το αρχείο σε σχέση με τη ρίζα του ιστότοπου, όπως φαίνεται"/Φάκελος/Όνομα αρχείου" με κάθετο στην αρχή. Ναι, ηχογραφήστεΜαθήματα

σημαίνει ότι ο σύνδεσμος οδηγεί σε έναν φάκελο με το όνομα course, ο οποίος βρίσκεται στη ρίζα του ιστότοπου και σε αυτόν πρέπει να κάνετε λήψη του αρχείου ευρετηρίου. Λάβετε υπόψη ότι αυτή η μορφή καταχώρισης δεν λειτουργείτοπικός υπολογιστής


, αλλά μόνο υπό τον έλεγχο ενός διακομιστή web.
Ο ιστότοπός σας υπάρχει σε δύο διαστάσεις, όπως ήταν.

Πραγματικό και εικονικό. Για όλους τους επισκέπτες, αυτός είναι ένας εικονικός διακομιστής ιστού. Το οποίο διαφέρει, μεταξύ άλλων, στο ότι ΔΕΝ ΥΠΑΡΧΟΥΝ ΑΡΧΕΙΑ σε αυτό. αν γράφεις%20" target="_blank">http://site.ru/file.html - αυτό δεν είναι αρχείο. Αυτό είναι το URIεικονική διεύθυνση
. Μπορεί να μην υπάρχει καθόλου αρχείο με το όνομα file.html στον διακομιστή. Αυτές είναι όλες εικονικές διευθύνσεις, όχι αρχεία.

Και το πρόγραμμα περιήγησης λειτουργεί συγκεκριμένα με διευθύνσεις. Για έναν προγραμματιστή, ένας ιστότοπος είναι ένα πρόγραμμα που εκτελείται σε ένα πολύ συγκεκριμένοπραγματικός υπολογιστής . Με πολύ συγκεκριμένασκληρό δίσκο

, καταλόγους και αρχεία. Και το σενάριο, δουλεύοντας με τα δεδομένα του, φορτώνοντας άλλα σενάρια, λειτουργεί με πραγματικά ΑΡΧΕΙΑ, στον φυσικό ΔΙΣΚΟ.
Σε αυτή τη διαφορά βρίσκονται οι δυσκολίες που συναντούν συχνά οι αρχάριοι. Χάνουν αρχεία, μπερδεύουν συνδέσμους με αρχεία, στρέφονται σετοπικά αρχεία ΜεΠρωτόκολλο HTTP

ή συμπεριλάβετε αρχεία από τη ρίζα του διακομιστή web.
Αλλά πρέπει απλώς να κατανοήσετε ξεκάθαρα δύο πράγματα: 1. Διακρίνετε τη ρίζα του διακομιστή web, όπως φαίνεται από το πρόγραμμα περιήγησης, και τη ρίζασύστημα αρχείων
στο δίσκο.

2. Διαφορά μεταξύ σχετικών μονοπατιών και απόλυτων μονοπατιών.
Είναι πολύ απλό. Εάν η διαδρομή καθορίζεται από τη ρίζα του συστήματος, τότε αυτή είναι μια απόλυτη διαδρομή. Πώς είναι αυτό ταχυδρομική διεύθυνση V πραγματική ζωή- όπου κι αν πάτε, πάντα θα βρείτε το σωστό μέρος στην ακριβή διεύθυνση.
παραδείγματα απόλυτων μονοπατιών:
/var/www/site/forum/index.php
/img/frame.gif
από:\windows\command.com

Στα συστήματα Unix και σε ιστότοπους, η ρίζα συμβολίζεται με κάθετο - "/".
Αυτό είναι σημαντικό. Αυτό δεν είναι απλώς ένα ραβδί, αλλά μια ανεξάρτητη ΔΙΕΥΘΥΝΣΗ, μια διαδρομή.
Στη διεύθυνση %20" target="_blank">http://www.site.ru/η τελευταία κάθετο δεν είναι για ομορφιά! Υποδηλώνει μια πολύ συγκεκριμένη διεύθυνση - την αρχή του ιστότοπου.
Σε ένα δίσκο σε συστήματα Unix μπορείτε επίσης να πληκτρολογήσετε "cd /" και θα μεταφερθείτε στον ριζικό κατάλογο.
Στα συστήματα Windows, το σύστημα αρχείων χωρίζεται σε δίσκους, επομένως, η απόλυτη διεύθυνση πρέπει να υποδεικνύει το όνομα του δίσκου. Δεν υπάρχει απόλυτη ρίζα ολόκληρου του συστήματος αρχείων στα Windows, κάθε δίσκος έχει τη δική του. Για παράδειγμα, C:\ E:\
Επομένως, ακόμα κι αν η διαδρομή προς τα Windows ξεκινά με κάθετο, δεν είναι απόλυτη διαδρομή, αλλά σχετικό. Σε σχέση με τον τρέχοντα δίσκο. Και το απόλυτο ξεκινά με ένα γράμμα.

Εάν η ρίζα δεν καθορίζεται στην αρχή της διαδρομής, τότε αυτή η διαδρομή θα είναι σχετική και προέρχεται από την τρέχουσα θέση. Στην πραγματική ζωή, είναι σαν ο δρόμος προς το ποτοπωλείο - «δύο τετράγωνα αριστερά και ευθεία σε όλη τη διαδρομή». Αυτό το μονοπάτι μπορεί να επιτευχθεί μόνο από ένα συγκεκριμένο σημείο. Από την άλλη θα καταλήξεις σε τελείως διαφορετικό μέρος.
Το απλούστερο παράδειγμα μιας σχετικής διαδρομής είναι απλώς ένα όνομα αρχείου.
Εάν το αρχείο βρίσκεται στον ίδιο κατάλογο με τον οποίο λειτουργεί το πρόγραμμα, θα το βρει προσθέτοντας την τρέχουσα διαδρομή στο όνομα του αρχείου.
παραδείγματα σχετικών μονοπατιών:
file.php (το αρχείο βρίσκεται στον ίδιο φάκελο)
./file.php (το αρχείο βρίσκεται στον ίδιο φάκελο. Μια τέτοια καταχώρηση απαιτείται μερικές φορές σε ορισμένα συστήματα Unix)
images/picture.jpg (το αρχείο βρίσκεται στον φάκελο εικόνων, ο οποίος βρίσκεται στον τρέχοντα)
../file.php (το αρχείο βρίσκεται σε φάκελο που βρίσκεται ένα επίπεδο ψηλότερα από το τρέχον)
../../file.php (το αρχείο βρίσκεται σε φάκελο που βρίσκεται δύο επίπεδα υψηλότερα από το τρέχον)

ΚΑΙ λειτουργικό σύστημα, και το πρόγραμμα περιήγησης, αφού συναντήθηκαν σχετική διαδρομή, το χτίζουν στο απόλυτο επίπεδο. αλλά ο καθένας με τον τρόπο του.

Τώρα ας προχωρήσουμε στο πρώτο σημείο.
Η διαφορά μεταξύ της ρίζας του διακομιστή web, όπως φαίνεται από το πρόγραμμα περιήγησης, και της ρίζας του συστήματος αρχείων στο δίσκο.
Γενικά, όλα πρέπει να είναι ξεκάθαρα από τις προηγούμενες εξηγήσεις.
Στο δίσκο, η διαδρομή προς το αρχείο σεναρίου μπορεί να είναι η εξής:
/var/www/site/forum/index.php
Ταυτόχρονα, η εικονική διεύθυνση αυτού του σεναρίου όταν προβάλλεται μέσω ενός προγράμματος περιήγησης θα είναι:
%20" target="_blank">http://www.site.ru/forum/index.php
Σε αυτό το παράδειγμα, είναι εύκολο να δούμε πού τέμνονται οι δύο διαστάσεις: οι δύο διευθύνσεις έχουν ένα κοινό μέρος - /forum/index.php - και αυτός είναι ο λόγος της σύγχυσης.
Για το πρόγραμμα περιήγησης αυτό είναι το πιο πλήρης διαδρομή, που μόνο μπορεί να είναι. Ξεκινά από τη ρίζα του ιστότοπου.
Για ένα σενάριο που εκτελείται στον διακομιστή, αυτό είναι μόνο ΜΕΡΟΣ της διαδρομής.
για το σενάριο, η διαδρομή /forum/index.php θα είναι ανύπαρκτη - δεν υπάρχει κατάλογος φόρουμ στη ρίζα του δίσκου!
για να λάβετε την πλήρη διαδρομή για αυτό που μοιάζει με /forum/index.php στον ιστότοπο, πρέπει να προσθέσετε στα αριστερά τη διαδρομή προς το φάκελο που θεωρείται η ρίζα για ολόκληρο τον διακομιστή web.
στο παράδειγμά μας είναι
/var/www/site
Αυτή η διαδρομή ορίζεται στη διαμόρφωση του διακομιστή web και είναι ακριβώς αυτό που περιέχεται στο σύστημα μεταβλητή PHP $_SERVER["DOCUMENT_ROOT"]

Σε έναν εικονικό διακομιστή -αυτόν που βλέπει ο χρήστης- αντίθετα δεν υπάρχει δίσκος. Υπάρχει ρίζα τοποθεσίας. Δηλαδή, για να είναι εγγυημένη η λειτουργία οποιουδήποτε συνδέσμου, ανεξάρτητα από το πού στο site καλείται, πρέπει να είναι απόλυτος.
Εάν έχετε, ας πούμε, δύο ενότητες στον ιστότοπό σας:
%20" target="_blank">http://www.site.ru/about/info.php
Και
%20" target="_blank">http://www.site.ru/job/vacancy.php
στη συνέχεια, αν δημιουργήσετε έναν σύνδεσμο στο αρχείο info.php απλώς στο vacancy.php , το πρόγραμμα περιήγησης δεν θα το βρει - θα αναζητήσει τη διεύθυνση %20," target="_blank">http://www.site.ru/about/vacancy.php, συμπληρώνοντας τη διαδρομή από τον τρέχοντα κατάλογο.
Επομένως, πρέπει να γράψετε την πλήρη διαδρομή από τη ρίζα του ιστότοπου - /job/vacancy.php
Όλα αυτά ισχύουν, φυσικά, όχι μόνο για τις ετικέτες αλλά και και οποιαδήποτε άλλα όπου χρησιμοποιούνται σύνδεσμοι προς άλλα αρχεία.

Οι σύνδεσμοι προς τις τοπικές διευθύνσεις θα πρέπει να γράφονται χωρίς να προσδιορίζεται το πρωτόκολλο και ο τομέας - μόνο η διαδρομή από τη ρίζα του ιστότοπου - /job/vacancy.php. Οι σύνδεσμοι προς άλλους ιστότοπους θα πρέπει να είναι γραμμένοι πλήρως - %20." target="_blank">http://www.site1.ru/job/vacancy.php .

Η PHP παρέχει πολλά εργαλεία για εργασία με αρχεία, καταλόγους και διευθύνσεις URL.

Η σταθερά __FILE__ περιέχει το όνομα του τρέχοντος εκτελέσιμου αρχείου.
Σε αντίθεση με το PHP_SELF, περιέχει το όνομα του αρχείου που εκτελείται αυτήν τη στιγμή.
ο σχεδιασμός φαίνεται πολύ χρήσιμος dirname(__FILE__), με το οποίο είναι επιθυμητό να αντικατασταθούν όλες οι κλήσεις σε αρχεία που βρίσκονται στον ίδιο κατάλογο με το σενάριο κλήσης. Για παράδειγμα:
απαιτείται dirname(__FILE__). "/init.php"
Η συνάρτηση dirname(), μαζί με το basename(), είναι μία από τις πιο συχνά χρησιμοποιούμενες για εργασία με αρχεία και καταλόγους.

Σημείωμα:
Εάν υπάρχουν προβλήματα με τις διαδρομές κατά τη μεταφορά σεναρίων από Windows σε σύστημα Unix, πρώτα απ 'όλα δώστε προσοχή στην περίπτωση των γραμμάτων. Στους διακομιστές Unix, η περίπτωση των γραμμάτων στο όνομα αρχείου έχει σημασία, File.txt και file.txt είναι δύο
διαφορετικά αρχεία, και κάτω από τα Windows - το ίδιο. Είναι καλύτερο να γράφετε πάντα το όνομα του αρχείου ακριβώς, σεβόμενοι την περίπτωση.

Το άρθρο περιέχει κομμάτια κώδικα. Πλήρης έκδοσημπορείτε να το αποκτήσετε εδώ - https://bitbucket.org/okiseleva/html-and-css-learn/src. Φάκελοι - "absolute_path_lvl_1" και όλοι οι υποφάκελοι.

Η διαδρομή μπορεί να είναι απόλυτη ή σχετική.

Απόλυτη διαδρομή

Απόλυτη διαδρομή είναι η διαδρομή από τον ριζικό φάκελο προς το αρχείο.

Η διαδρομή αποτελείται από όλους τους φακέλους που πρέπει να δούμε, χωρισμένους με κάθετο. Ας δούμε ένα παράδειγμα:

/absolute_path_lvl_1/level_2.1/level_3.1/Kevin.png

Απόλυτη διαδρομή προς το αρχείο

Σχετική διαδρομή

Μια σχετική διαδρομή είναι ένας σύνδεσμος που οδηγεί σε άλλες σελίδες στον ιστότοπό σας σε σχέση με την ιστοσελίδα στην οποία υπάρχει ήδη ο σύνδεσμος.

Αν μετακινήσουμε τους φακέλους προς τα κάτω, τους διαχωρίζουμε επίσης χρησιμοποιώντας το "/". Εάν θέλετε να ανεβείτε ένα επίπεδο, γράψτε ".."

1. Το απλούστερο παράδειγμα μιας σχετικής διαδρομής είναι απλώς ένα όνομα αρχείου. εάν το αρχείο βρίσκεται κοντά, απλώς υποδείξτε το όνομά του

Hello.png

Σχετική διαδρομή, αρχείο κοντά


2. Ανεβείτε έναν φάκελο

../Kevin_lvl_2.png

Σχετική διαδρομή 2

3. Ένα πιο περίπλοκο παράδειγμα, από Diff_paths.htmlστη φωτογραφία με τον Κέβιν

../level_2.1/level_3.1/Kevin.png

Σχετική διαδρομή 3


Ποια είναι η διαφορά μεταξύ απόλυτων και σχετικών μονοπατιών;

Είναι πολύ απλό. Εάν η διαδρομή καθορίζεται από τη ρίζα του συστήματος, τότε αυτή είναι μια απόλυτη διαδρομή. Είναι σαν μια ταχυδρομική διεύθυνση στην πραγματική ζωή - όπου κι αν πάτε, αλλά με την ακριβή διεύθυνση θα βρείτε πάντα το σωστό μέρος.

Εάν η ρίζα δεν καθορίζεται στην αρχή της διαδρομής, τότε αυτή η διαδρομή θα είναι σχετική και θα κατασκευαστεί από την τρέχουσα θέση. Στην πραγματική ζωή, είναι σαν ο δρόμος προς το ποτοπωλείο - «δύο τετράγωνα αριστερά και ευθεία όλη την ώρα». Αυτό το μονοπάτι μπορεί να επιτευχθεί μόνο από ένα συγκεκριμένο σημείο. Από την άλλη θα καταλήξεις σε τελείως διαφορετικό μέρος.

Στο αρχείο absolute_path_lvl_1/level_2.2/Diff_paths.htmlμπορείτε να δείτε ένα παράδειγμα σελίδες HTMLμε διαφορετικές διαδρομές προς αρχεία.

Ακολουθεί ένα παράδειγμα απόλυτης και σχετικής διαδρομής για το ίδιο αρχείο με τον Kevin.


D:/hgprojects → Κατέβασα το έργο "html-and-css-learn" εδώ. Μπορεί να έχετε άλλο τρόπο


ΥΓ - περισσότερες λεπτομέρειες στο βιβλίο "