Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF][SF2] Błąd 404 dla linków bez przedrostka app_dev.php
Forum PHP.pl > Forum > PHP > Frameworki
wujek2009
Cześć.

Gdy próbuje wejść na swoją stronę Symfony2 przez adres: http://127.0.0.1/symfony2/web/app_dev.php/demo/hello/test prawidłowo wyświetla mi stronę www. Jednak gdy usunę app_dev.php wyświetla mi komunikat 404.

Czyściłem cache za pomocą konsoli z polecenia: console cache:clear jednak nic to nie dało.
Zauważyłem również, że plik routing.yml mam pusty (w routing_dev.yml są wpisy) więc skopiowałem tylko te podstawowe, tj:
Kod
_welcome:
    pattern:  /
    defaults: { _controller: AcmeDemoBundle:Welcome:index }

_demo_secured:
    resource: "@AcmeDemoBundle/Controller/SecuredController.php"
    type:     annotation

_demo:
    resource: "@AcmeDemoBundle/Controller/DemoController.php"
    type:     annotation
    prefix:   /demo


do routing.yml ponownie wyczyściłem cache, ale wciąż ten sam komunikat błędu 404.
Szymciosek
Widocznie demo tak działa.

Usuń cały src/AcmeBundle czy coś takiego, z routing_dev usuń to co podałeś, z app/app_kernel usuń linię dotyczącą wpisu o AcmeBundle...

Po tym uruchom w cmd:
Kod
php app/console generate:bundle


a następnie po tym spróbuj uruchomić
Kod
localhost/symfony2_project/app_dev.php/hello/world


Powinien się wyświetlić napis, po tym sobie jeszcze raz usuń app/cache oraz app/logs i uruchom podany wyżej link jeszcze raz, ale tym razem bez app_dev.php
destroyerr
Błąd 404 pochodzi jak rozumiem z serwera http. W dokumentacji Symfony2 masz przykłady jak należy skonfigurować serwer. Problem jest taki, że kiedy wywołujesz adres http://127.0.0.1/symfony2/web/app_dev.php/demo/hello/test to serwer nie znajduje takiego fizycznego pliku ani nie ma też skonfigurowanego żadnego przekierowania/przechwytywania takiego adresu.
basso
Wyczysć cache,

$ php app/console cache:clear --env=prod --no-debug

a później jak chcesz na produkcyjnym działać to musisz go na produkcyjny przełaczyć.

$kernel = new AppKernel('prod', false);


No ale jak programujesz to na razie siedź sobie na dev ... dużo wygodniej, łatwiej i lepiej.
Szymciosek
Cytat(basso @ 20.05.2013, 21:54:13 ) *
Wyczysć cache,

$ php app/console cache:clear --env=prod --no-debug

a później jak chcesz na produkcyjnym działać to musisz go na produkcyjny przełaczyć.

$kernel = new AppKernel('prod', false);


Pierwsze słyszę żeby coś przełączać w kernelu...
Po to są zrobione dwa środowiska (dev i prod) żeby z nich korzystać, przy czym rozpoznawane są na podstawie właśnie linku, gdy masz app_dev.php automatycznie uruchamiany projekt jest w środowisku deweloperskim, co powoduje tworzenie plików na bieżąco, natomiast, gdy nie mamy w linku app_dev.php automatycznie uruchamia się app.php, czyli środowisko produkcyjne, które za pierwszym razem tworzy sobie potrzebne pliki i później z nich korzysta, co przekłada się na szybkość.
basso
kurde... pomyliłem frameworki.. sory smile.gif

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.