【发布时间】:2014-12-16 21:43:28
【问题描述】:
我在我的 Symfony2.5 项目中设置了我的路由文件。但是当我使用 Wamp 服务器(Windows 上的 localhost)启动我的应用程序时遇到了这个问题:
No route found for "GET /" (from "http://localhost/girSymfony/web/")
404 Not Found - NotFoundHttpException
1 linked Exception: ResourceNotFoundException »
这是在 WampServer 上启动应用程序时使用的 url:http://localhost/girSymfony/web/
当我尝试使用这个 URL http://localhost/girSymfony/web/时,我遇到了上面提到的 404 错误。
但如果我尝试使用这个网址:http://localhost/girSymfony/web/gir/homepage 它可以工作;我希望应用程序到达并直接在此 url 上运行。我该怎么做?
这是我的Gir/WelcomeBundle/Ressource/config/routing.yml 文件代码:
girWelcomeBundle_HomePage:
pattern: /homepage
defaults: { _controller: GirWelcomeBundle:HomePage:index }
requirements:
methods: GET
schemes: https
这是我的app/config/routing.yml 文件代码:
GirWelcomeBundle:
resource: "@GirWelcomeBundle/Resources/config/routing.yml"
prefix: /gir
这是我的 Gir/WelcomeBundle/Controller/HomePageController.php 的控制器代码:
<?php
namespace Gir\WelcomeBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class HomePageController extends Controller
{
public function indexAction()
{
return $this->render('GirWelcomeBundle:HomePage:index.html.twig');
}
}
如您所见,我设置了路由文件,但由于出现 404 错误,我只是忘记了一些东西。 我认为我的应用程序没有使用正确的 direction 和正确的 URL ,我该如何解决?
新编辑: 请注意,当我运行我的应用程序时,我已经设置了 WAMP 和 Symfony,我直接到达 主页索引
【问题讨论】:
-
当您使用前缀时,您的默认路由是(开发环境)localhost/girSymfony/web/app_dev.php/gir 或 localhost/girSymfony/web/app_dev.php/gir/homepage(注意末尾的“/”...)
-
即使我使用或不使用“/”,我也有同样的错误。事实上,如果我删除
gir/WelcomeBundle/Ressource/config/routing.yml中的/homepage和app/config/routing.yml中的/gir,我的应用程序将直接进入索引HomePage。我想通过正确设置 URL 来做同样的事情。 -
您可以尝试删除https要求吗? (我可以看到 { _controller: girWelcomeBundle:HomePage:index } 这个包的名称不正确 (GirWelcomeBundle)
-
对不起,我编辑这篇文章时出错了,但在我的项目中名称是正确的。即使我删除了 https 要求,也没有任何改变。
-
你知道你有两个 routings.yml(一个在 app/config 中,另一个在你的包内的 config 文件夹中)。此外,您的 routing.yml 中“url”的顺序非常重要,请注意它。你可以把整个文件? (app/routing.yml、bundle/resource/config/routing.yml 和控制器)
标签: symfony url routes http-status-code-404 wampserver