webentwicklung-frage-antwort-db.com.de

Symfony 2 - Beim Laden der Web-Debug-Symbolleiste ist ein Fehler aufgetreten (404: Nicht gefunden)

Seit dem Update auf Symfony 2.2 wird die Web-Debug-Symbolleiste nicht mehr in app_dev.php geladen.

Ich erhalte folgende Fehlermeldung:

An error occurred while loading the web debug toolbar (404: Not Found).
Do you want to open the profiler?

Im prod.log bekomme ich folgendes:

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 [] []

Ich habe den Cache mehrmals geleert :)

Interessant ist die Tatsache, dass in /app_dev.php alle Links auf der Seite nicht mehr auf /app_dev.php verweisen.

einschließlich des Profils (/_profiler/5fdc27cb82c4e9e426b3ab27377deb0b760fdca2). ____ Wenn die URL manuell geändert wird und die app_dev.php der URL hinzugefügt wird, lädt der Profiler ordnungsgemäß.

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

Ich wäre für jede Hilfe dankbar.

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

UPDATE 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');
    }
}

Update 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: Ich habe den Fehler gefunden, es war ein falsches (altes) Rendertag in einer Vorlage. :(

Danke für deine Unterstützung

13
Bol

Ich hatte auch dieses Problem, versuchen Sie, auf Ihren .htaccess zu achten und es so aussehen zu lassen:

<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>
11

In Symfony 4 + Flex musste ich symfony/Apache-pack recipie installieren

composer req Apache-pack
5
user6863579

Ich hatte dieses spezielle Problem, nachdem ich meine Anwendung auf einer neuen Linux-Box installiert hatte. Ich hatte gerade vergessen, mod_rewrite in Apache2 zu aktivieren

[Sudo] a2enmod rewrite
[Sudo] service Apache2 restart

Hoffe es wird helfen!

2
Moonchild

Eine weitere Fehlerursache: Aktualisieren Sie den Apache-Webserver, ohne das Umschreibungsmodul zu kommentieren. Lerne beim machen!

1
geoB

Ich bin auf diesen Fehler gestoßen, als ich den Herstellercode für Debugging-Zwecke änderte. (Ich weiß, dass es nicht der richtige Weg ist, aber trotzdem ... Ich habe Änderungen vorgenommen, die Webanwendung getestet und vergessen, den Herstellercode zurückzusetzen).

Wenn es sich um Ihren Fall handelt und Sie sich nicht erinnern, wo genau Sie "illegale" Änderungen am Herstellercode vorgenommen haben, können Sie das Lieferantenverzeichnis oder seine Komponenten entfernen und den Befehl php composer.phar update ausführen, um die ursprünglichen Versionen abzurufen.

1

Dies geschieht für mich, wenn ich .htaccess (aus dem Webverzeichnis) geändert habe, um app_dev.php anstelle von app.php aufzurufen, aber ich habe es nicht überall in der .htaccess-Datei geändert. Nach dem Ändern sind alle Erscheinungen im app_dev.php-Fehler verschwunden.

0
MilanG

ihre Umschreibungsregeln verursachen es wahrscheinlich. Vor wenigen Augenblicken habe ich meine neu geschrieben, und ich hatte das gleiche Problem mit dem Profiler.

0
Teffi