Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Quelqu'un sait comment désactiver la redirection sur page 404 pour les requêtes sur des images manquantes ?
Hors ligne
prépare une route spécialisée pour les urls contenant tes images?
(genre une autre 404 plus spécifique)
Hors ligne
C'est à dire ?
Moi je veux juste une 404 de base dans ce cas.
Hors ligne
Euh.. mais enfait c'est à quel moment que tu a ta 404? lors des chargements d'images?
Hors ligne
Quand une image est manquante sur le serveur, il est renvoyé une 404 "zf". Celle-ci ne s'affiche pas dans le navigateur mais génère de nouvelles requêtes au serveur totalement inutiles (page html (layout), images du layout, js, css ... ). Ce n'est pas propre du tout.
Ca ne m'est pas arrivé, mais j'imagine que si l'image manquante est dans le layout, cela peut entraîner une boucle infini de "requêtes-réponses404".
Hors ligne
idem pour les requêtes de js ou css...
Hors ligne
Salut, eu j'ai jamais eu ce genre de problème. C'est pas le ZF2 qui gère ça c'est apache.
Hors ligne
mmhh.. moi non plus,
ça doit pas venir de zf2 effectivement
Hors ligne
Pourtant il est bien défini dans le htaccess qu'apache distribue un fichier s'il existe sur le serveur mais passe la main à zf sinon.
Hors ligne
Il ressemble à quoi ton htaccess ? Parce que j'ai jamais eu ce soucis pourtant j'ai une de mes appli qui fait que de la photo ...
Hors ligne
C'est le htaccess du skeleton application de zf : https://github.com/zendframework/ZendSk … pplication
RewriteEngine On # The following rule tells Apache that if the requested filename # exists, simply serve it. RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] # The following rewrites all other queries to index.php. The # condition ensures that if you are using Apache aliases to do # mass virtual hosting, the base path will be prepended to # allow proper resolution of the index.php file; it will work # in non-aliased environments as well, providing a safe, one-size # fits all solution. RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$ RewriteRule ^(.*) - [E=BASE:%1] RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]
Hors ligne
Donc normalement si tes images, ton JS et ton CSS sont dans le dossier public tu n'as aucune raison d'avoir une erreur 404 du framework .
Par exemple public/css public/images etc ... Par défaut le ZendSkeletonApplication a des fichiers de css qui fonctionnent bien et dans le cas où ils sont pas présent t'as pas une 404 du framework.
Hors ligne
Ben si, lors de l'appel d'une image non présente (mais aussi valable pour css, js, pdf, etc.)
Note : je ne mets pas forcément mes images dans un dossier image (mais tout de même dans le dossier public). Mais à priori la résolution du 404 ne doit pas se faire sur un (des) dossier(s) d'un nom spécifique mais bien sur le type mime du fichier.
Hors ligne
Pour t'éclairer un peu plus sur ma problématique, il m'arrive de faire des appels à des images par javascript, cependant ces images ne sont pas forcément présentes sur le serveur.
Le problème ne se présente pas quand j'affiche une image dans une vue créée par ZF puisque je peux tester la présence de l'image sur le serveur avant de l'afficher ou non (mais cela pourrait se présenter si je ne fais pas ces tests). Ce qui n'est pas possible dans le client (javascript dans le navigateur).
Hors ligne
C'est à toi de rajouter une condition dans ta réécriture d'url de ton fichier .htaccess pour ne pas rediriger vers index.php toutes les requêtes . Effectivement je viens de tester ça retourne bien une 404 du ZF2 quand la ressource n'est pas là. Mais ça vient du .htaccess
Hors ligne
C'est donc une erreur du htaccess du skeleton.
Hors ligne
Orkin a écrit:
Salut, eu j'ai jamais eu ce genre de problème. C'est pas le ZF2 qui gère ça c'est apache.
Me doutais bien que tu abusais un peu trop du Calvados.
Hors ligne
Bah c'est bien le cas, c'est pas au ZF2 de distribuer les images, c'est ton fichier htaccess qui doit les exclure des redirections donc à apache
Hors ligne