【问题标题】:Can't Access my Symfony Controller @Route无法访问我的 Symfony 控制器 @Route
【发布时间】:2018-12-09 01:36:55
【问题描述】:

我是 Symfony 的新手(使用 3.4 版)。我在 macOS High Sierra 上将它与 XAMPP 一起使用。我这样设置我的虚拟主机:

<VirtualHost *:80>
   DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/project/web/app_dev.php"
   ServerName project
</VirtualHost>

并将我的主机文件设置为“127.0.0.1 项目”,效果很好。

但后来我在我的应用程序中创建了一个控制器:

<?php

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;

class ProjectController extends Controller
{ 
    /**
    * @Route("/todo", name="todo_list")
    */
    public function indexAction(Request $request)
    {
        die("TO DOS");
        // replace this example code with whatever you need
        return $this->render('default/index.html.twig', [
            'base_dir' => realpath($this- 
            >getParameter('kernel.project_dir')).DIRECTORY_SEPARATOR,
         ]);
    }
}

但是当我访问项目/待办事项时,它会重定向到项目/仪表板并显示 XAMPP 欢迎页面。我怎样才能去项目/待办事项?

注意:虽然我使用的是 Mac,但我正在学习本教程 https://www.youtube.com/watch?v=HchMW8EhWPU

【问题讨论】:

    标签: php macos symfony xampp


    【解决方案1】:

    我在 Apache + Symfony 方面的经验有限,但我相信您的 DocumentRoot 是不正确的。您应该指向web 目录而不是proddev 前端控制器。出于测试目的,只需从最后删除app_dev.php。那有帮助吗?

    根据您的版本,请始终查阅官方文档,例如:Configuring a Web Server

    为了调试您的路线,我建议您运行bin/console debug:router 以便更好地了解您注册的路线。

    希望这会有所帮助...

    【讨论】:

      【解决方案2】:

      您的文档根目录不正确。文档根必须始终是一个目录。所以你的文档根目录应该是:

      DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/project/web/"
      

      下一步:您想要的是所有请求都通过app_dev.php。这是通过重写规则来完成的。重写规则将客户端的请求映射到真实资源,在您的情况下为 app_dev.php 前端控制器。

      这里有一套适合你的重写规则。 (我目前没有使用 Apache,所以我从一个遗留项目中找到了它们,希望它们对你有用。) 将其放入您的web/ 目录中的.htaccess 文件中:

      <IfModule mod_rewrite.c>
          RewriteEngine On
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteRule ^(.*)$ app_dev.php [QSA,L]
      </IfModule>
      

      这是一组基本规则,基本上意味着网络服务器应该将所有对不存在文件的请求重写为app_dev.php

      您也可以将其添加到网络服务器配置中,但是每次修改配置时都必须重新启动网络服务器。

      另外:如果由于某种原因在修改配置后出现 5xx 错误,请查看服务器日志以获取解释。

      【讨论】:

        猜你喜欢
        • 2017-11-10
        • 2017-11-18
        • 1970-01-01
        • 2019-05-20
        • 1970-01-01
        • 2016-01-23
        • 2018-06-04
        • 2016-12-21
        • 1970-01-01
        相关资源
        最近更新 更多