- 1
[Opened] notfoundact et message d'erreur...
Posted by Arnall on 03/06/2012 17:13
Bonjour,
j'utilise depuis peu la version 1.3 et un problème est apparu concernant les messages d'erreurs de ce type :
Le sélecteur "foo~bar" ne désigne pas une ressource de type zone
ces messages n'apparaissent pas dans la debugbar ni dans le log fichier car par défaut on a :
notfoundAct="jelix~error:notfound"
et dans jCoordinator :
try{ $this->action = new jSelectorActFast($this->request->type, $this->moduleName, $this->actionName); if($gJConfig->modules[$this->moduleName.'.access'] < 2){ throw new jException('jelix~errors.module.untrusted',$this->moduleName); } $ctrl = $this->getController($this->action); }catch(jException $e){ if ($gJConfig->urlengine['notfoundAct'] =='') { throw $e; } try { $this->action = new jSelectorAct($gJConfig->urlengine['notfoundAct']); $ctrl = $this->getController($this->action); }catch(jException $e2){ throw $e; } }
Donc si "notfoundact" n'est pas vide il n'y a pas d'exception et on se retrouve avec une page "404 Not Found" sans savoir pourquoi. Il semble que ça ne corresponde pourtant pas à l'erreur véritable. Donc je ne sais pas si c'est voulu, si c'est un "bug" ou si j'ai mal configuré quelque chose...
PS : pour résoudre mon problème j'ai mis notfoundact='' mais il me semble que je contourne simplement le problème.
[Opened] notfoundact et message d'erreur...
Posted by laurentj on 03/07/2012 10:34
Bonjour,
Le sélecteur "foo~bar" ne désigne pas une ressource de type zone
Il est impossible que tu ais cette erreur à cet endroit là. Car ce genre d'erreur arrive quand dans ton contrôleur, tu tentes de récupérer une zone. Mais à l'endroit que tu pointes dans le coordinateur, le contrôleur n'est même pas encore lancé.
Sauf si tu récupère une zone dans le constructeur de ton coordinateur, chose que tu ne devrais pas faire à mon avis.
Donc si "notfoundact" n'est pas vide il n'y a pas d'exception et on se retrouve avec une page "404 Not Found" sans savoir pourquoi.
Parce que la seul exception qui est censé apparaître (éventuellement), c'est celle provoquée par jSelectorActFast et par getControlleur, lorsqu'ils ne trouvent pas le module ou le contrôleur demandé. Ce qui correspond donc à un 404. CQFD ;-)
- 1