Depuis la mise à jour de symfony 2.2, la barre d’outils de débogage Web n’est plus chargée dans app_dev.php.
Je reçois l'erreur suivante:
An error occurred while loading the web debug toolbar (404: Not Found).
Do you want to open the profiler?
Dans le prod.log j'obtiens ce qui suit:
request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET /_profiler/84fb75cc3ffd5435474ebe4250e01fac2cdf49c1"" at /httpdocs/project/app/cache/prod/classes.php line 3597 [] []
request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET /_wdt/452d5b4aa2dd9388285fa1c286d5c54218029c71"" at /httpdocs/priject/app/cache/prod/classes.php line 3597 [] []
J'ai vidé la cache plusieurs fois :)
Fait intéressant, dans /app_dev.php, tous les liens de la page ne sont plus liés à /app_dev.php.
y compris le profil (/_profiler/5fdc27cb82c4e9e426b3ab27377deb0b760fdca2)[.____.¹. lorsque je modifie l’URL manuellement et que j’applique app_dev.php dans l’URL, le profileur se charge correctement.
routing_dev.yml:
_assetic:
resource: .
type: assetic
_wdt:
resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
prefix: /_wdt
_profiler:
resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
prefix: /_profiler
_configurator:
resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
prefix: /_configurator
_main:
resource: routing.yml
Je vous serais reconnaissant pour toute l'aide apportée.
UPDATE I: config_dev.yml
imports:
- { resource: config.yml }
framework:
router: { resource: "%kernel.root_dir%/config/routing_dev.yml" }
profiler: { only_exceptions: false }
web_profiler:
toolbar: true
intercept_redirects: false
monolog:
handlers:
main:
type: stream
path: %kernel.logs_dir%/%kernel.environment%.log
level: debug
firephp:
type: firephp
level: info
chromephp:
type: chromephp
level: info
assetic:
use_controller: true
MISE À JOUR II: AppKernel.php
use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\Config\Loader\LoaderInterface;
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new JMS\AopBundle\JMSAopBundle(),
new JMS\DiExtraBundle\JMSDiExtraBundle($this),
new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(),
new myProject\MyBundle\myBundle(),
new FOS\UserBundle\FOSUserBundle(),
new myProject\MyBackendBundle\myBackendBundle(),
);
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
$bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
$bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
}
return $bundles;
}
public function registerContainerConfiguration(LoaderInterface $loader)
{
$loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
}
}
Mise à jour III: .htaccess
DirectoryIndex app.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{CONTEXT_PREFIX}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule .? %{ENV:BASE}app.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 302 ^/$ /app.php/
</IfModule>
</IfModule>
UPDATE: J'ai trouvé l'erreur, il s'agissait d'une mauvaise (ancienne) balise de rendu dans un modèle. :(
Merci pour votre aide
J'ai eu ce problème aussi, essayez de faire attention à votre .htaccess et faites-le ressembler à ceci:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app_dev.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L] ##### this is the part that you should Tweak, have the .htaccess point the request to app_dev.php, since the routing.yml is empty initially
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteRule .? %{ENV:BASE}/app_dev.php [L] ##### this is the part that you should Tweak, have the .htaccess point the request to app_dev.php, since the routing.yml is empty initially
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
# When mod_rewrite is not available, we instruct a temporary redirect of
# the startpage to the front controller explicitly so that the website
# and the generated links can still be used.
RedirectMatch 302 ^/$ /app.php/
# RedirectTemp cannot be used instead
</IfModule>
</IfModule>
Dans Symfony 4 + Flex, je devais installer symfony/Apache-pack
recipie
composer req Apache-pack
J'ai eu ce problème particulier après avoir installé mon application sur une nouvelle machine Linux. Je venais d'oublier d'activer mod_rewrite dans Apache2
[Sudo] a2enmod rewrite
[Sudo] service Apache2 restart
J'espère que ça va aider!
Une autre source de cette erreur: mettez à jour le serveur Web Apache sans supprimer le commentaire du module de réécriture. Apprendre en faisant!
J'ai rencontré cette erreur lorsque je modifie le code du fournisseur à des fins de débogage. (Je sais que ce n'est pas la bonne façon mais quoi qu'il en soit .. J'ai apporté des modifications, testé l'application Web et oublié de restaurer le code du fournisseur).
Si c'est votre cas et que vous ne vous rappelez pas exactement où vous avez effectué des modifications "illégales" au code du fournisseur, vous pouvez supprimer le répertoire du fournisseur ou ses composants et exécuter la commande php composer.phar update
pour extraire les versions d'origine.
Pour moi, cela se produit lorsque j'ai changé .htaccess (de Web dir) afin d'appeler app_dev.php au lieu de app.php, mais je ne l'ai pas changé partout dans le fichier .htaccess. Après avoir changé, toutes les apparences apparues en erreur app_dev.php ont disparu.
vos règles de réécriture en sont probablement la cause. Il y a quelques instants, j'étais en train de réécrire la mienne et j'avais le même problème avec le profileur.