Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα σας και καλο μηνα να έχουμε!

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

Δηλαδή π.χ έχω έναν φάκελο inc και μέσα περιέχεται το header.php αρχείο στο οποιο περιλαμβάνει όλα τα css και js αρχεία κλπ.

Έτσι λοιπόν όταν έχω την διαδρομή:

http://localhost/index.php

και του καλώ από εκεί το header.php μέσα από το inc φάκελο όλα είναι εντάξει και δεν υπάρχει κανένα πρόβλημα..

Όταν πάω όμως και δημιουργώ έναν νέο φάκελο π.χ:

http://localhost/catigories/test.php

και του καλο και από εκεί το header.php τότε μου βγάζει όλο το περιεχόμενο χωρίς να διαβάζει το css.
 

Μήπως πρέπει να προσθέσω κάτι στο css? αν έχει αντιμετωπίσει κάποιος το ίδιο πρόβλημα ας μου λύσει αυτήν την απορία γιατί θα σκάσω :)

Δημοσ.

Ας πούμε ότι στο <head> έχεις κάτι σαν:

<link rel='stylesheet' type='text/css' href='style.css'>

Στην περίπτωση του http://localhost/index.php, ο browser θα προσπαθήσει να το κατεβάσει από το http://localhost/style.css

Ενώ στην περίπτωση του http://localhost/catigories/test.php θα το ψάξει στο http://localhost/catigories/style.css

Αν το έχεις αποθηκεύσει παράλληλα με το index.php, στη δεύτερη περίπτωση είναι φυσικό να μην το βρει.

 

Άνοιξε μία κονσόλα στο browser και θα τα δεις όλα αυτα.

Δημοσ.

Όλα τα CSS είναι μέσα στον φάκελο CSS οποτε αυτό που κάνει το header είναι να το παίρνει έτσι:

<link rel='stylesheet' type='text/css' href='css/style.css'>
Δημοσ.

Άρα λοιπόν στην πρώτη περίπτωση αναζητά το

http://localhost/css/style.css

ενώ στη δεύτερη το

http://localhost/catigories/css/style.css

Βάλε ένα / μπροστά από το css/ κάπως έτσι:

<link rel='stylesheet' type='text/css' href='/css/style.css'>

Έτσι, η διαδρομή σου θα είναι root-relative (θα ξεκινά πάντα από το http://localhost/).

Δημοσ.

Κάτι πάει να γίνει αλλα πετάχτηκαν αλλα τώρα..
Μου έβγαλε ότι δεν βρίσκει το path του config.php ήμαρτον!

Που στο inc/header.php περιλαμβάνεται και το config.php στον ίδιο φάκελο
και όταν καλώ το categories/test.php με include ("../inc/header.php"); μου βγάζει σφάλμα:

Warning: include(inc/config.php): failed to open stream: No such file or directory in C:\wamp\www\inc\header.php on line 1
Warning: include(): Failed opening 'inc/config.php' for inclusion (include_path='.;C:\php\pear') in C:\wamp\www\inc\header.php on line 1
Δημοσ.

Απλά σταμάτα να παλεύεις με τα relative paths.

 

Φρόντισε με κάποιο τρόπο, ανεξάρτητα από το πως έχεις δομήσει τα αρχεία σου, τελικά με το που ξεκινάς να υπάρχει κάποιο constant που είναι το root της εφαρμογής σου ως προς http και ένα που να είναι το root όσον αφορά το filesystem.

 

Απο κει και πέρα όπου έχεις αναφορές σε web assets βάζεις μπροστά το πρώτο, π.χ.

<img src="<?= htmlspecialchars(WEB_ROOT) ?>images/logo.jpg" />

και όπου κάνεις includes το δεύτερο, π.χ.

include(DIR_ROOT."config/database.php");

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...