2010-04-29 6 views
1

Grâce à Zend réécriture au module/contrôleur/action URL, ses rapports que les images sont à venir à travers comme 404.Les images d'exploitation forestière comme 404s avec Zend Framework

Voici l'erreur:

[_requestUri:protected] => /images/Movie/124/thumb/main.png 
       [_baseUrl:protected] => 
       [_basePath:protected] => 
       [_pathInfo:protected] => /images/Movie/124/thumb/main.png 
       [_params:protected] => Array 
        (
         [controller] => images 
         [action] => Movie 
         [124] => thumb 
         [module] => default 
        ) 

       [_rawBody:protected] => 
       [_aliases:protected] => Array 
        (
        ) 

       [_dispatched:protected] => 1 
       [_module:protected] => default 
       [_moduleKey:protected] => module 
       [_controller:protected] => images 
       [_controllerKey:protected] => controller 
       [_action:protected] => Movie 
       [_actionKey:protected] => action 

ici est mon HTACCESS

SetEnv APPLICATION_ENV development 

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 

RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

Je suppose que ce que je dois todo est mis une sorte d'image ou/détection de la conception de sorte que son pas de routage à index.php

Des idées?

Répondre

1

La logique de la règle de réécriture .htaccess que vous avez définie ici est que si elle ne peut pas trouver le fichier, elle enverra la requête à index.php à la place. Ce qui signifie que si vos images ne sont pas joignables (pas dans le répertoire public), zend_framework va essayer de le gérer. Ce qui bien sûr ne peut pas.

1

Si vous utilisez la structure de répertoire par défaut, cela devrait fonctionner lorsque vous placez vos images dans le dossier ./public.

0

Placez votre dossier d'images à l'intérieur de votre lieu public, et comme Arnie mentionne que vous êtes prêt à partir. Il en va de même pour tous les fichiers supplémentaires que vous souhaitez inclure dans vos vues, par exemple les fichiers CSS.

/public 
    |__ images/ 
    |__ css/ 

Vive. M.

+1

Ils sont en images publiques / – azz0r

0

vous pouvez essayer cet extrait

<img src="<?=$this->baseUrl('/img/icon_quickstart.png');?>" alt="start" /> 
1

Vous pouvez essayer Changin votre htaccess avec

RewriteRule !\.(js|ico|gif|jpg|png|css)$ /index.php 

sorcière shoudl laisser des images et d'autres choses vont à travers.

0

J'utilise le même fichier .htaccess et le même programme d'installation pour un projet Zend, mais je ne vois pas ce comportement.

Juste quelques réflexions qui pourraient vous envoyer sur le droit chemin:

  • Sensibilité à la casse dans le chemin?
  • Chemin n'existe pas réellement, provoquant Apache à passer à index.php?
  • Configuration Apache (globalement) ou au niveau VirtualHost
  • Autorisations problème? Est-ce que main.png at ./public/main.png est rendu lors de votre demande?
  • Modèle d'itinéraire chevauchant dans application.ini?
  • Désactiver le fichier .htacces pour un bit, juste pour voir s'il mappe correctement les répertoires?

Juste quelques idées. -andrew

1

Vous devez ajouter la ligne

RewriteCond %{REQUEST_FILENAME} -f