2011-01-13 5 views
0

Je suis sur l'hébergement partagé où www uniquement accessible par le serveur web, donc je changer la structure recommandée pour le ZenFramework à base de projet de mettre la bibliothèque dans le dossier www:confusion de vue Helpers

www/
index . php
application/
Modules/
avant/
admin/
Bibliothèque/

le .htaccess:

RewriteEngine On

RewriteBase/

RewriteCond% {} REQUEST_FILENAME -s [OR]

RewriteCond% {REQUEST_FILENAME} -l [OR]

RewriteCond% {REQUEST_FILENAME} - d

RewriteRule^* $ -. [NC, L]

RewriteRule ^. * $ Index.php [NC, L]

J'ai testé localement sous WampServer, tout fonctionne bien.

quand je vais en ligne, je reçois des erreurs sur Afficher les Helpers:

Attention: include_once(): Impossible d'accéder /home/www/application/Modules/front/views/helpers/HeadMeta.php

il y a confusion entre les helpers des vues ZendFramework et les helpers de vue que je crée moi-même. et quand je copie le contenu: bibliothèque \ Zend \ View \ Helper \ à \ application \ modules \ front \ views \ helpers tout fonctionne bien! et c'est le même souci pour le module admin/ Je ne comprends pas pourquoi. est ce que je dois garder les aides View avec la vue personnalisée de mes assistants?

Merci d'avance pour vos réponses.

Mise à jour:

Je n'ai pas attaché et toute aide créer par moi-même. mais je dois créer des aides d'action, comme ceci:

resources.frontController.moduleDirectory = APPLICATION_PATH "/Modules" 
resources.frontController.defaultModule ="front" 
resources.frontController.actionHelperPaths.Application_front_Controller_Helper = APPLICATION_PATH "/Modules/front/controllers/helpers/" 
resources.modules[]= 

Module Bootstrap:

class front_Bootstrap extends Zend_Application_Module_Bootstrap 

{ 
    public function _initHelper() 

    { 

     $this->bootstrap('frontController'); 

     $navigation = Zend_Controller_Action_HelperBroker::getStaticHelper('NavigationPath'); 

     Zend_Controller_Action_HelperBroker::addHelper($navigation); 

    } 
} 

Répondre

2

Plusieurs réflexions/questions/commentaires:

  1. Il semble sûr d'être à la recherche de la voir l'assistant dans votre dossier Module. Essayez-vous d'appeler un assistant personnaliséHeadMeta développé par vous, ou essayez-vous d'appeler l'assistant standardZend_View_Helper_HeadMeta?Avez-vous défini des chemins d'assistance dans Bootstrap ou application/config.ini?

  2. Votre configuration actuelle a un problème de sécurité: Que faire si quelqu'un demande l'url: http://exmaple.com/application/config.ini? Je ne vois aucune protection là-bas. Notez que vous n'êtes pas obligé de déplacer tous vos dossiers ZF dans la racine du document. Plutôt, vous pouvez les pousser vers le bas et placer la protection deny-all sur ce dossier. Voir: Zend Framework on shared hosting. Ce blog propose également d'autres approches de ZF sur l'hébergement partagé.

  3. Enfin, lorsque quelque chose fonctionne sous Windows mais ne fonctionne pas sous Linux, il y a several usual suspects à vérifier.