Symfony路由无法在生产模式下工作

时间:2017-07-06 07:52:37

标签: symfony routes symfony-2.8

在控制器中调用操作时会出现一个奇怪的问题。 在具有app_dev.php - 前缀的开发模式中,一切都按预期工作。但在生产模式下,操作将返回404

操作开头的echo "test"; exit;仍然会产生404,因此操作完全被忽略。

但是app/console debug:router --env=prod以及app/console debug:router --env=dev正在正确显示路线。

在两种环境中:

+--------------+---------------------------------------------------------+
| Property     | Value                                                   |
+--------------+---------------------------------------------------------+
| Route Name   | blabla_trackfile_index                                  |
| Path         | /trackfile/{id}.{ext}                                   |
| Path Regex   | #^/trackfile/(?P<id>[^/\.]++)\.(?P<ext>[^/]++)$#s       |
| Host         | ANY                                                     |
| Host Regex   |                                                         |
| Scheme       | ANY                                                     |
| Method       | ANY                                                     |
| Requirements | NO CUSTOM                                               |
| Class        | Symfony\Component\Routing\Route                         |
| Defaults     | _controller: PumukitBasePlayerBundle:TrackFile:index    |
| Options      | compiler_class: Symfony\Component\Routing\RouteCompiler |
+--------------+---------------------------------------------------------+

我已经使用控制台清除了缓存 php app/console cache:clear php app/console cache:clear --env=prod 并手动(删除文件夹)。

我已将src / app.php中的$kernel = new AppKernel('prod', false); 更改为$kernel = new AppKernel('dev', true);,但问题仍然存在于生产模式中。

更新

prod.log中没有条目。

Nginx日志:

2017/07/06 10:19:29 [error] 1517#0: *159 open() "/var/www/test/web/trackfile/594b97d1e1db06824d8b4567.mp4" failed (2: No such file or directory), client: XX.XX.XX.XX, server: localhost, request: "GET /trackfile/594b97d1e1db06824d8$

所以看起来nginx将请求的路由视为文件或目录。这是问题吗?我该如何解决这个问题?

更新2

/**
 * @Route("/trackfile/{id}.{ext}", name="blabla_trackfile_index" )
 */
public function indexAction($id, Request $request)
{
    echo "asdf"; exit;
}

我可以遵循的任何其他想法或提示?

0 个答案:

没有答案