2015-09-08 5 views
6

Я установил Symfony2 2.7 в C: \ XAMPP \ HTDOCS \ sym1 \ блог, я создал новый контроллер после этого DocumentSymfony2 создать первый контроллер, но 404

<?php 
// src/AppBundle/Controller/LuckyController.php 
namespace AppBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Symfony\Component\HttpFoundation\Response; 

class LuckyController extends Controller 
{ 
    /** 
    * @Route("/lucky/number") 
    */ 
    public function numberAction() 
    { 
     $number = rand(0, 100); 

     return new Response(
      '<html><body>Lucky number: '.$number.'</body></html>' 
     ); 
    } 
} 

, но вручную, когда я иду в

http://localhost/sym1/blog/web/lucky/number

или

http://localhost/sym1/blog/app_dev.php/lucky/number

он просто отображает

Oops! An Error Occurred 

The server returned a "404 Not Found". 

Something is broken. Please let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused. 

кто-нибудь знает в чем проблема?

--update--

я просто нашел комментарий

#RewriteRule .? %{ENV:BASE}/app.php [L] 

, а затем добавить эти две строки

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ app_dev.php [QSA,L] 

будет нормально, но есть бар, производительность прилагается внизу страницы.

+1

Run 'PHP кэша приложений/консоль: ясно --env = prod' каждый раз, когда вы хотите, чтобы увидеть изменения на производстве. – malcolm

ответ

7

Я думаю, вы не понимаете концепцию среды в Symfony2. В первом случае Apache выполнил app.php из веб-папки. Это производственная версия вашего приложения. Много кэшированных файлов, которые не обновляются по каждому запросу. Именно по этой причине вы не видите изменений. Сначала вы должны очистить кеш командой консоли.

php app/console cache:clear --env=prod 

Во втором случае Apache выполняет app_dev.php. Это среда для развития. Вы сразу видите изменения, а также можете увидеть панель инструментов developmnet, которая очень полезна для разработки. Панель инструментов присутствует только в среде разработки.

http://symfony.com/doc/current/book/configuration.html#environments

1

Другое возможное решение:

php bin/console cache:clear --env=prod 
Смежные вопросы