Bonsoir,
Je viens vous voir car j'ai un souci, trés certainement trés simple, mais que je n'arrive pas a résoudre...
Je suis en train de réaliser un projet en suivant l'exellent tutoriel mvc, mais je suis bloquer pour l'utilisation de mon propre fichier css.
Effectivement, j'ai créer un fichier style.css, que j'ai placer dans le dossier css de webroot. Pour l'appeler a partir de mon default.php, je fait :
<link rel="stylesheet" type="text/css" href="<?php echo WEBROOT.DS.'css'.DS.'style.css'; ?>">
Et la sa ne fonctionne pas, le fichier n'est pas pris en compte du tout, mais pourtant lorsque je regarde la source de la page, le lien est bien celui qui méne a mon fichier.(j'ai meme essayé en l'écrivant en durs, mais le résultat reste le meme)
Le lien s'affichant dans la source de la page est celui-ci:
/home/user/www/mon-projet/webroot/css/style.css
Par contre, lorsque je met :
<link rel="stylesheet" type="text/css" href="css/style.css">
sa fonctionne correctement :s
J'avoue que je suis un peu perdu avec les chemins, j'ai bien comprit que l'on reste tout le temp sur la page index, et que donc le chemin relatif fonctionne, mais pourquoi le chemin absolu avec WEBROOT ne fonctionne pas?
Du coup quel chemin utiliser, le relatif, ou un autre? J'imagine que le souci se posera également avec les images :s
Je suis sur que ces un probléme tout simple, mais je n'arrive pas a comprendre, donc si vous pouviez me donnez un petit coup de pouce :)
Je vous met a titre indicatif mon $_server:
Array
(
[REDIRECT_STATUS] => 200
[HTTP_HOST] => mon-projet
[HTTP_USER_AGENT] => Mozilla/5.0 (X11; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_ACCEPT_LANGUAGE] => fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_CONNECTION] => keep-alive
[HTTP_CACHE_CONTROL] => max-age=0
[PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[SERVER_SIGNATURE] =>
Apache/2.2.22 (Fedora) Server at mon-projet Port 80
[SERVER_SOFTWARE] => Apache/2.2.22 (Fedora)
[SERVER_NAME] => mon-projet
[SERVER_ADDR] => 127.0.0.1
[SERVER_PORT] => 80
[REMOTE_ADDR] => 127.0.0.1
[DOCUMENT_ROOT] => /home/user/www/mon-projet
[SERVER_ADMIN] => root@localhost
[SCRIPT_FILENAME] => /home/user/www/mon-projet/webroot/index.php
[REMOTE_PORT] => 34809
[REDIRECT_URL] => /
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] =>
[REQUEST_URI] => /
[SCRIPT_NAME] => /webroot/index.php
[PHP_SELF] => /webroot/index.php
[REQUEST_TIME] => 1334358204
)
Merci encore pour votre aide et vos conseils :)
le default.php est dans /view/layout et dans le dossier layout tu n'as pas de répertoire css. C'est normal qu'il ne trouve pas.
essaye :
<link rel="stylesheet" type="text/css" href="../webroot/css/style.css">
ps : je n'ai pas mis de Majuscule a Webroot, mais tu en as mis une dans ton commentaire. Si ton dossier en a vraiment une, change mon code.
Si tu utilises un .htaccess tu dois faire une condition dans le fichier pour que ça ne récrie pas les fichiers ou les dossiers qui existe, tu peux utiliser ça au dessous de RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
M2n si tu as toujours ton soucis, peut tu poster la hiérarchie de tes dossiers et fichier?