我已经安装了 Symfony2,在修复文件权限后,我可以通过将其指向以下内容从浏览器访问开发环境:http://localhost/app_dev.php
但是,当我尝试通过将浏览器指向 http://localhost
来访问生产环境时,出现以下异常(来自 app/logs/prod.log):
然后我从命令行检查了 prod 环境的可用路由。这是调查的结果。
令人难以置信的是,它表明没有为此环境定义路由(我不相信错误消息 - 基本上说的是同一件事)。
所以,我的结论是:开箱即用的 Symfony2 安装,并且生产环境没有默认路由——这是真的,还是我在某处犯了错误?
更重要的是,我该如何解决这个问题?在 SF1.x 中,可以直接从 dev 切换到 prod,反之亦然。例如,如何在 prod 环境中查看 AcmeDemo
应用程序。 ?
[[更新]]
在得到 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
最佳答案
我有同样的问题!!
Symfony2 有两个通用路由文件,称为:
app/config/routing.yml and app/config/routing_dev.yml
但是,它在每个包中也有一个包特定的路由文件。标准过程是在您的 bundle routing.yml 文件中定义所有的 bundle 路由,然后通过添加从主 routing.yml 文件中引用它:
YourbundlenameMainBundle:
resource: "@YourbundlenameMainBundle/Resources/config/routing.yml"
prefix: /
这就是我所拥有的,但我仍然收到错误消息。但是后来我更仔细地阅读了错误……没有找到 GET/的路由……然后我检查了我的 routing_dev.yml 文件,当然它有一个来自 Acme 演示包 _welcome 路由的路由。这就是为什么它适用于开发版本而不适用于生产版本!
解决方案:
通过添加以下内容,将/的路由添加到routing.yml 全局文件或routing.yml 包文件:
_welcome:
pattern: /
defaults: { _controller: YourbundlenameMainBundle:Default:index }
如果您的欢迎页面不是索引,您可以将索引更改为其他路由
关于php - request.ERROR : Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for "GET/",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11932756/