A tu regarder la balise html5 base?
Et si elle ne te convient pas, tu peux passer par une url absolue.
Bonjour,
Après avoir suivit un tuto, sur les site en MVC, je suis confronter à un très gros problème : Suivant ou j'appel mon controller, les liens CSS et image sont "mal écrit".
Comme un bonne exemple vaut mieux qu'un long discours voila :
voici ma methode render() dans ma class Controller principal, qui me creer ma vue de la page appelée.
public function render($url, $tab = NULL)
{
$chemin = explode('/', $url);
$css = '';
$js = '';
($tab == NULL)? $tab='' : $tab = $tab ;
$_SESSION'flash'] = (isset($tab'flash']))? $tab'flash'] : '' ;
$_SESSION'flash_error'] = (isset($tab'flash_error']))? $tab'flash_error'] : '' ;
if (strpos($chemin[0], 'Module') !== false){
// ajouts des fichiers css du module
$scandir = scandir(ROOT.'modules/'.$chemin[0].'/public/css');
unset($scandir[0]);
unset($scandir[1]);
ob_start();
foreach($scandir as $k => $v){
echo '<link rel="stylesheet" type="text/css" media="screen" href="' . WEBROOT . 'modules/' . $chemin[0] . '/public/css/' . $v . '" />';
}
$css = ob_get_clean();
// ajouts des fichiers js du module
$scandir = scandir(ROOT . 'modules/' . $chemin[0] . '/public/js');
unset($scandir[0]);
unset($scandir[1]);
ob_start();
foreach($scandir as $k => $v){
echo '<script type="text/javascript" src="' . WEBROOT . 'modules/' . $chemin[0] . '/public/js/' . $v . '"></script>' ;
}
$js = ob_get_clean();
// ajout de la vue
ob_start();
require(ROOT . 'modules/' . $chemin[0] . '/views/' . $chemin[2]);
$content = ob_get_clean();
// ajout du layout
require(ROOT.'views/default/layout.php');
} elseif ($chemin[0] === 'index') {
header('Location:' . WEBROOT);
}
}
celle ci vous l'aurais compris va me charger mes page php est les ajouter.
Seulement, si j'appel ma page : http://localhost/monsite/ je tombe sur ma page d'accueil et la tout est beau.
mais si je vais sur la page http://localhost/monsite/demoModule/demoAction , alors lorsqu'il ajoute mon layout, les liens css démarre à localhost/monsite/demoModule ( donc lien css : localhost/monsite/demoModule/public/css/style.css ), au lieux de démarer à /localhost/monsite/ ( donc liens css : localhost/monsite/public/css/style.css )
j'aimerai bien que n'importe d'ou ( adress que se soit localhost/monsite ou localhost/monsite/demo ou localhost/monsite/demo/demo2/demo3 ) il me charge toujours a partir de localhost/monsite.
Merci.