Bonjour,
j'ai suivi cette vidéo... plusieurs fois même pour bien comprendre: https://www.youtube.com/watch?v=a3NZtp3FJEE
Je crois que c'est bon, mais j'ai 2 questions.
Je veux créer plusieurs layout, car j'ai dans mon site plusieurs types de pages (connexion, affiche dashboard,...). Je crois avoir compris le truc mais j'ai un soucis avec l'url rewriting et les CSS que je link.
Si je tape l'adresse:
http://localhost/app/login/index, ça marche j'ai les CSS qui se chargent
en revanche si je tape dans l'adresse:
http://localhost/app/login/index/, ça ne fonctionne plus. Le simple fait de rajouter un "/" à la fin.
Une idée lumineuse?
Merci.
C'est normal :)
<u>Explication :</u>
avec comme url : http://localhost/app/login/index
le css va être cherché dans http://localhost/app/views/css/bootstrap.min.css
avec comme url : http://localhost/app/login/index/
le css va être cherché dans http://localhost/app/login/views/css/bootstrap.min.css
<u>Solution :</u>
Pour corriger ca soit tu mets l'url de la base de ton site :
http://www.w3schools.com/tags/tag_base.asp
Ou sinon tu dois remplacer tes adresses relatives (ex : ../index.php) par des adresses complète (ex : http://localhost/index.php)
regarde dans le code source de la page pour voir ce qui change quand tu importe le fichier css
Justement rien ne change, j'ai mis mon "template" dans le fichier "views/layout/login.php", puis j'ai copié/coupé/collé le "template" dans le fichier "views/login/index.php", ça ne change rien. (ça c'était pour l'info).
J'ai également mis dans mon fichier "core/controller.php" au moment de l'appel du layout: echo $_SERVER'SCRIPT_FILENAME']; ça m'affiche c:\app\index.php c'est à dire le fichier dispatcher.
Pour répondre à votre question:
avec l'adresse: http://localhost/app/login/index j'ai:
<link href="../views/css/bootstrap.min.css">
array(
[0]=>login
[1]=>index
)
Action:index
avec l'adresse: http://localhost/app/login/index/ j'ai:
<link href="../views/css/bootstrap.min.css">
array(
[0]=>login
[1]=>index
[2]=>
)
Action:index
Et si je veux, dans ce cas, que le CSS soit pris en compte, je vais dans l'inspecteur d'élément et j'édite la ligne "<link href="../views/css/bootstrap.min.css">" que je transforme en "<link href="../../views/css/bootstrap.min.css">" et là le CSS est pris en compte.
Bizarre non?
Merci pour cette réponse, mais je ne comprends toujours pas pourquoi le chemin change en fonction de mon "/" à la fin.
Excusez moi, peut-être une question idiote, mais toujours pour ce même tuto, quand j'ai dans mon layout un lien du type: <a href="#" class="dropdown" data-toggle="dropdown">Mon lien</a> je retourne à la page d'accueil, qui est pour moi la page de connexion.
Comment je peux faire pour éviter cela? J'ai mis le lien en absolu pour voir, ça ne change rien: <a href="http://localhost/app/dashboard/index/#" class="dropdown" data-toggle="dropdown">
Merci.