Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonsoir! j'ai un gros problème avec les liens relatif.
par exemple un lien comme <img src="public/images/logo.png" /> qui se trouve dans default/index/index
marche seulement quand j'accède à ma page sans spécifier le nom du controller ni de l'action.(page par default)
en résumé
www.monsite.com/baseURL/ les liens marchent
www.monsite.com/baseURL/index ils marchent toujours
www.monsite.com/baseURL/index/index j'ai ma page qui s'affiche sans les images et sans le feuille de style.
ce qui est bizarre c'est que si je change mon lien en <img src="../public/images/logo.png" /> alors
www.monsite.com/baseURL/ ne marche pas
www.monsite.com/baseURL/index ne marche pas
www.monsite.com/baseURL/index/index marche
j'ai le même problème en local (avec wamp).
les dossiers de mon ftp respectent l'architecture conseillé par zend:
public
images
css
module
default
controllers
IndexController.php
views
scripts
template.phtml
index
index.phtml
Dernière modification par nemesisTHEone (22-04-2008 20:22:15)
Hors ligne
<img src="/public/images/logo.png" />
si c'est à la racine du site, sinon :
<img src="<?php echo $this->baseUrl; ?>/public/images/logo.png" />
Dernière modification par ubini (14-04-2008 20:16:39)
Hors ligne
merci de ta réponse ubini mais sa ne marche pas.
en plus en rajoutant <?php echo $this->baseUrl; ?> sa ne marche plus tout cours car mon index et tte l'arborescence que j'ai donnée en haut c'est justement le contenu d'un dossier 'test'.
donc <img src="<?php echo $this->baseUrl; ?>/public/images/logo.png" /> donne un lien relatif faut.
merci quand meme.
Hors ligne
regarde du coté du HTML, tu as une balise base ou basename, j'ai plus le nom en tete :'(
<base href="http://www.domain.tld" />
tous tes liens seront en relatif par rapport a celui ci :
<img src="./public/images/logo.png" /> <script src="./public/js/jquery.js" /> ... <a href="./monModule/monController/monAction/param1/valeur1/param2/valeur2">Lien</a>
Hors ligne
nemesisTHEone a écrit:
merci de ta réponse ubini mais sa ne marche pas.
en plus en rajoutant <?php echo $this->baseUrl; ?> sa ne marche plus tout cours car mon index et tte l'arborescence que j'ai donnée en haut c'est justement le contenu d'un dossier 'test'.
donc <img src="<?php echo $this->baseUrl; ?>/public/images/logo.png" /> donne un lien relatif faut.
merci quand meme.
dans ton controlleur :
$this->view->baseUrl = "/test";
après tu peux soit jouer avec un config.ini ou utiliser les fonctionnalités du ZF pour automatiser cette fonction, à toi de voir
Hors ligne
@ubini je fais déja ça dans mon controller et j'ai vérifié il m'ajoute bien le base name.(sinon j'aurai eu une exception du style controller n'existe pas)
le truc bizarre c'est que le meme script (vue que c'est la meme portion de code php) exécuter en appelant le script par 2 url différent m'affiche 1 coup sur 2 les images et c'est ça que je trouve bizzare normalement (vue que l'index ne bouge pas) si je fais
http://www.site.com/baseurl/
http://www.site.com/baseurl/controller
http://www.site.com/baseurl/controller/action
supposant que j'essaye d'accéder a la page par défaut normalement dans les 3 cas c'est le meme script donc le résultat soit les 3 ne marche pas soit les 3 marche mais chez moi le code html c'est le meme mais dans le premier cas seulement les images s'affiche et c'est ça que je n'arrive pas a comprendre.
@ndesaleux ok je vais voir au pire je mettrai tout en absolue.
mais bon si quelqu'un peut m'expliquer comment le meme code php qui donnent la meme source html marche selon l'url je dirai pas non.
Hors ligne
Bonjour
Essaie ça
<img src="<?php echo $this->baseUrl."/../public/images/logo.png" ;?>"/>
ça devrait marcher (à quelques erreurs de syntaxe près avec les quotes).
j'avais le même problème il y a quelques minutes
Dernière modification par ziedb (15-04-2008 19:07:19)
Hors ligne
merci ziedb j'avais remarqué aussi
moi a écrit:
ce qui est bizarre c'est que si je change mon lien en <img src="../public/images/logo.png" /> alors
mais sa ne règle pas le problème pour autant car si tu accède au site sans précisé de controller ni d'action les liens ne marcheront pas.
ps: j'ai le même problème même en mettant mes fichiers a la racine du site.
Hors ligne
ne jamais utiliser de lien relatif
depuis que j'ai adopté cette règle plus de pb
les lien relatif le sont par rapport à l'url demandé
donc http://monserveur/module/controleur/action/param1/val1/parm2/val2
../public/images vas chercher
http://monserveur/module/controleur/action/param1/val1/parm2/public/images
pas top
donc toujours utiliser basurl soit avec
<base href="<?php echo $this->baseUrl; ?>"
soit en écrivant /public
de même include './.....'; vas chercher par rapport au script de départ c'est à dire le bootstrap et non le script dans lequel il est inclus.
A+JYT
Hors ligne