2 votes

Contrôleur invalide spécifié (css) dans Zend framework

J'essaie d'appliquer du css dans le Zend Framework. Mon fichier css se trouve dans public/css/layout.css . Tout d'abord, j'ai ajouté les lignes de code suivantes dans le fichier bootstrap.php :

protected function _initPlaceholders()
 {
   $this->bootstrap('View');
   $view = $this->getResource('View');
   $view->doctype('XHTML1_STRICT');

   // Set the initial title and separator:
   $view->headTitle('My Site')
        ->setSeparator(' :: ');

   // Set the initial stylesheet:
   $view->headLink()->prependStylesheet('../../css/layout.css');
 }

qui spécifie simplement le titre et la feuille de style à utiliser. Ensuite, dans layout.phtml J'ajoute le code suivant :

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<?php
echo $this->headTitle();
echo $this->headScript();
// add a link to the site style sheet
echo '';
echo $this->headLink();

?>
</head>

qui ajoute simplement le lien de la feuille de style spécifiée dans bootstrap.php .

Mais lorsque je lance le projet, j'obtiens le formulaire sans css. Comment cela se fait-il ? Quand je vérifie le css avec Firebug dans un navigateur Mozilla, il dit :

<h3>Exception information:</h3>
<p>
<b>Message:</b> Invalid controller specified (css) </p>
<h3>Stack trace:</h3>
<h3>Request Parameters:</h3>
<pre>array (
   'controller' =&gt; 'css',
   'action' =&gt; 'layout.css',
   'module' =&gt; 'default',
 ) </pre> 

Veuillez m'aider à résoudre ce problème.

3voto

akond Points 6145

Essayez

$view->headLink()->prependStylesheet('/css/layout.css');

ceci devrait aider.

3voto

Cristiano Santos Points 941

Avez-vous ce code dans votre fichier /public/.htaccess ?

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Si vous n'avez pas les 4 premières lignes, ce fichier redirigera votre requête de "css/layout.css" vers index.php et ensuite, Zend l'interprétera comme un lien pour un contrôleur -> action.

Si vous avez ce fichier, assurez-vous que mod_rewrite est activé sur votre serveur.

Et vous devriez mettre votre lien comme "akond" l'a dit.

Bonne chance =)

0voto

Krzysztof Boduch Points 636

Cela m'a aidé :

Zend_Controller essaie d'exécuter mes feuilles de style comme contrôleur

[mise à jour]

Ok, j'ai ajouté la ligne suivante à mon fichier .htaccess et tout fonctionne comme prévu maintenant...

RewriteRule !.(js|ico|txt|gif|jpg|png|css|htc|swf|htm)$ index.php

mais ensuite j'ai trouvé celui-là :

http://devzone.zend.com/1651/managing-css-and-javascript-files-within-a-zend-framework-app/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X