Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonsoir !
J'aimerais savoir comment connaitre le chemin d'accès au dossier images, pour pouvoir en afficher une
En fait je suppose qu'il suffit de savoir quel dossier est considéré comme le dossier courant, et il n'y a plus qu'à dérouler le chemin jusqu'à l'image... mais pourtant je n'ai pas trouvé
Merci d'avance !
Hors ligne
Dans mon cas, j'ai fait comme ça :
/module
/ctrl
/mdl
/views
accueil.phtml -> appel des images via $this->baseUrl/styles/img/...
/styles
/img
J'ai mis, dans l'init de chaque controlleur, cette ligne. Peut-être qu'on peut le mettre en statique directement dans le bootstrap.
$this->view->baseUrl = $this->_request->getBaseUrl();
Hors ligne
Moi je fonctionna avec une constante STATIC_PATH définie dans le bootstrap que j'utilise pour tous ce qui est statique (css, js, images, files). Cela me laisse la possibilité future de passer tout le static sur un autre serveur si besoin (genre lighthttpd).
Hors ligne
Et comment tu crée ton static_path dans le bootstap? Un define ?
Je peux voir ton code ? :p
Hors ligne
Un define est surement ce qu'il y a de plus simple
define('STATIC_ROOT_URL', 'http://www.tonsite.dom');
Pour ma part, je n'utilise pas cette technique, je met donc simplement le chemin relatif de mes images puis j'utilise la balise HTML <base>
La balise BASE est utilisée pour déclarer un chemin absolu qui sera utilisé comme référence pour toutes les autres url présentes dans le document. Elle est généralement déclarée dans la partie <head> du document, mais peut être utilisée dans le <body>.
Hors ligne
Merci à vous!
je teste ca ce soir ^^
Hors ligne
Même approche que Mr.MoOx, cela permet si besoin de switcher vers un serveur lighthttpd pour les statics (images, css, js..).
Hors ligne
J'ai retenu la technique de haltabush, car elle est identique à la maniere de récupérer le css (et ui je suis boulet, j'ai même pas réfléchi à ca...), et je l'avais déjà implémentée... il me manquait juste le <?php echo $this->baseUrl; ?> devant mon url relative...
class IndexController extends Zend_Controller_Action { function init(){ $this->view->baseUrl = $this->_request->getBaseUrl(); } function indexAction(){ $this->view->title = "Accueil Doc-Annonces"; $this->render(); } }
et puis index.phtml :
<img src="<?php echo $this->baseUrl; ?>/public/images/shampoo.gif" alt="en plein shampoing..."/>
Hors ligne
Bonsoir à tout ! j'aimerais relancer le topic car également du mal à afficher une image avec Zend Framework.
Je pense comprendre pourquoi mais je cherche une alternative à mon problème.
Mes images sont dans un dossier que j'ai nommé "resources" situé au meme niveau que public et application.
J'ai configuré un VirtualHost qui pointe vers le dossier public de l'application. De ce fait (logiquement) on ne peut acceder à tout autre fichier ou dossier parent ou frère (application, library etc..) par HTTP. Comme tout image fait l'objet d'une requete après chargement de la page il est normal que je ne parvienne pas à l'obtenir si mon DocumentRoot est configuré ainsi ..
J'ai donc voulu afficher le contenu de ma variable baseUrl dans ma vue, et à ma grande surprise, je n'ai obtenu qu'une chaine vide ! Quelqu'un sait pourquoi ?
La solution qui consiste à mettre le dossier "resources" dans le dossier public fonctionne correctement, cependant je trouve ça conceptuellement mal propre et je ne veux pas que les internautes puissent voir librement son contenu.
Peut-etre y a-t-il une solution au niveau de application.ini .. des liens vers des ressources ajouter ..?
Merci de votre aide !
Hors ligne
Ton dossier d'image doit être dans public c'est au contraire exactement la bonne conception des choses, après tu peux en empêcher l'affichage du contenu.
Hors ligne