当我尝试运行http://localhost/app_dev.php时,Symfony2返回找不到“GET /”的路由,但此网址有效:http://localhost/app_dev.php/hello/Symfony。我删除了AcmeDemoBundle,我正在尝试从symfony2教程运行一个示例包。有什么问题?
app / config / routing.yml:
ShopMyShopBundle:
resource: "@ShopMyShopBundle/Resources/config/routing.yml"
prefix: /
app / config / routing_dev.yml:
_assetic:
resource: .
type: assetic
_wdt:
resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
prefix: /_wdt
_profiler:
resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
prefix: /_profiler
_configurator:
resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
prefix: /_configurator
_main:
resource: routing.yml
src / Shop / MyShopBundle / Resources / config / routing.yml:
ShopMyShopBundle_homepage:
pattern: /hello/{name}
defaults: { _controller: ShopMyShopBundle:Main:index }
requirements:
_method: GET
答案 0 :(得分:20)
问题是您没有/
的路线。将您的定义更改为:
ShopMyShopBundle_homepage:
pattern: /
defaults: { _controller: ShopMyShopBundle:Main:index }
requirements:
_method: GET
答案 1 :(得分:10)
以上答案都是错误的,分别没有回答为什么你在查看demo-content prod-mode时遇到麻烦。
这是正确的答案:清除你的“prod”-cache:
php app/console cache:clear --env prod
答案 2 :(得分:5)
这项工作对我来说:
cache:clear --env=prod
答案 3 :(得分:3)
在php 5.5中使用symfony 2.3并使用内置服务器
app/console server:run
应该输出如下内容:
Server running on http://127.0.0.1:8000
Quit the server with CONTROL-C.
然后转到http://127.0.0.1:8000/app_dev.php/app/example
这应该给你默认值,你也可以通过查看src / AppBundle / Controller / DefaultController.php找到默认路由
答案 4 :(得分:1)
Prefix是url路由的前缀。如果它等于'/',则表示它没有前缀。然后你定义了一个模式为“它应该以/ hello开头”的路由。
要为'/'创建路线,您需要在src / Shop / MyShopBundle / Resources / config / routing.yml中添加以下行:
ShopMyShopBundle_homepage:
pattern: /
defaults: { _controller: ShopMyShopBundle:Main:index }
答案 5 :(得分:1)
我可能只是一个犯了这个错误的人,但可能不是这样我会发布。
路由中的format for annotations必须以斜线和两个星号开头。我犯了一个斜线的错误,只有一个星号,PHPStorm自动完成。
我的路线看起来像这样:
/*
* @Route("/",name="homepage")
*/
public function indexAction(Request $request) {
return $this->render('default/index.html.twig');
}
什么时候应该是这个
/**
* @Route("/",name="homepage")
*/
public function indexAction(Request $request) {
return $this->render('default/base.html.twig');
}
答案 6 :(得分:0)
我也尝试过这个错误,只需添加/ hello / any name就可以了,因为它是必须有hello / name的路径
示例:而不是仅仅放http://localhost/app_dev.php
这样说http://localhost/name_of_your_project/web/app_dev.php/hello/ai
它会显示Hello Ai。我希望我回答你的问题。