28197 sujets

CSS et mise en forme, CSS3

Salut !
Je suis en train de créer un site web avec php, html, css.
J'utilise un router AltoRouter.
Mon index.php sert uniquement au router pour afficher les fichiers qui sont hors du dossier public "public".
Je n'arrive pas à importer des fichiers css. Par exemple, dans mon dossier elements, j'ai le header.php et header.css. Dans mon header.php je demande à ce qui link le fichier css. J'affiche le header.php dans le index.php mais il n'y a pas de css. Je regarde dans la console de développement Chrome et là, je remarque que Google ne retourne pas en arrière dans la hiérarchie pour cherche mon header.css.
Comment résoudre ça ?

Voici ma hiérarchie :

/www/
|-- /public
|     |-- index.php
|     |-- .htaccess
|
|-- /elements
|    |-- header.php
|    |-- header.css
|
|-- /ressources
|    |-- /css
|    |-- /images
|
|-- /templates
|    |-- 404.php
|    |-- home.php
|    |-- login.php
Modérateur
Salut,

Quel est le contenu de ton fichier .htaccess ?
Quel est le contenu du fichier header.php ?

Si je comprends bien, le contenu d'index.php est à peu près comme ceci :

$router = new AltoRouter();

// map homepage
$router->map('GET', '/', function() {
    require __DIR__ . '/../templates/home.php';
});


Je pense que ton souci vient d'un mauvais ciblage. Cible ta css en absolute. Ça devrait résoudre ce bug.
Modifié par niuxe (24 Jan 2025 - 22:15)
Bonjour !
Le problème que tu rencontres vient probablement du fait que le chemin relatif vers ton fichier CSS dans header.php ne fonctionne pas correctement en raison de la structure de ton projet avec le router. Comme ton index.php est dans le dossier public et que tu inclues header.php depuis un autre dossier, le navigateur ne trouve pas le fichier CSS en suivant le chemin relatif. Pour résoudre ça, tu pourrais utiliser un chemin absolu dans ton lien CSS, comme <link rel="stylesheet" href="/elements/header.css">, pour que le chemin soit toujours résolu à partir de la racine du site, indépendamment du dossier où le fichier PHP est inclus.