我已经安装了 Symfony2,在修复文件权限后,我可以从浏览器访问开发环境,方法是将其指向:
http://localhost/app_dev.php
但是,当我尝试通过将浏览器指向 来访问生产环境时http://localhost
,出现以下异常(来自 app/logs/prod.log):
[2012-08-13 11:30:03] request.ERROR: Symfony\Component\HttpKernel\Exception\NotFoundHttpException: 在 /path/to/frameworks/Symfony2/app 找不到“GET /”(未捕获的异常)的路由/cache/prod/classes.php 第 4584 行 [] []
然后我从命令行检查了 prod 环境的可用路由。这是该调查的结果。
root@yourbox:~/path/to/frameworks/Symfony2$ php app/console router:debug -e=prod [router] 当前路由名称方法模式
令人难以置信的是,它表明没有为这个环境定义路由(我不相信错误消息——它本质上说的是同一件事)。
所以,我的结论是:开箱即用 Symfony2 安装,生产环境没有默认路由 - 这是真的,还是我在某个地方犯了错误?
更重要的是,我该如何解决这个问题?在 SF1.x 中,可以直接从 dev 切换到 prod,反之亦然。AcmeDemo
例如,如何在 prod 环境中查看应用程序。?
[[更新]]
在thecatontheflat的反馈之后,我在 routing.yml 文件中添加了一个简单的测试路由。app/config/routing.yml 的内容现在是:
_welcome2:
pattern: /test
defaults: { _controller: AcmeDemoBundle:Welcome:index }
当我在浏览器中尝试http://localhost/test
时,我得到了同样的 404 错误。当我调试控制台上可用的路由时,我得到以下输出:
root@yourbox:~/path/to/frameworks/Symfony2$ php app/console router:debug -e=prod
[router] Current routes
Name Method Pattern
_welcome2 ANY /test