Symfony 2(2.3.x)注释路由不起作用

时间:2014-07-03 20:09:09

标签: symfony annotations routes

我是symfony的新手,我按照本教程进行了操作: http://it.siciarek.pl/docs/references/howtostart.html

在安装过程结束时(摆脱ACME之后)的某个时刻,我已经创建了一个新的Bundle

php app/console generate:bundle --bundle-name=AgcoukMainBundle --namespace=Agcouk/MainBundle --dir=src --format=annotation --structure --no-interaction

我的DefaultController看起来像:

namespace Agcouk\MainBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;

class DefaultController extends Controller
{
    /**
     * @Route("/", name="home")
     * @Template()
     */
    public function indexAction()
    {
        return array();
    }
}

和我的routing.yml(app / config / routing.yml)

agcouk_main:
    resource: "@AgcoukMainBundle/Controller/"
    type:     annotation
    prefix:   /

现在,尝试访问页面sf2 /(sf2 / config.php有效!)我收到404错误。

我甚至通过控制台调试路线(php app / console router:debug home),一切看起来都不错

[router] Route "home"
Name         home
Path         /
Host         ANY
Scheme       ANY
Method       ANY
Class        Symfony\Component\Routing\Route
Defaults     _controller: Agcouk\MainBundle\Controller\DefaultController::indexAction
Requirements NO CUSTOM
Options      compiler_class: Symfony\Component\Routing\RouteCompiler
Path-Regex   #^/$#s

(我甚至尝试在routing.yml中指定Controller文件名,没有任何变化,即使调试也会产生相同的结果)。

有任何线索吗? 感谢

2 个答案:

答案 0 :(得分:0)

首先,您应该使用Symfony的官方文档... www.symfony.com

您所遵循的本教程甚至将框架的名称写错了:" Symphony",所以可能已经过时了。

您是否尝试清除缓存? php app/console cache:clear --env=dev

答案 1 :(得分:0)

受此帖的启发: symfony2 - how to switch from "dev" to "prod"?

我终于解决了这个问题。我手动删除了app / cache / dev和app / cache / prod中的文件,然后我更改了prod缓存文件夹的所有者

sudo chown www-data app/cache/prod

现在,指向我的虚拟主机(sf2),页面加载时没有404错误。