当我尝试在开发环境中抛出一个简单的throw $this->NotFoundHttpException('We do not currently have a website configured at this address. Please visit our website for more information or contact our support team');
时,它工作正常。但是当我在prod环境中做同样的事情时,我得到500服务器错误。
有什么想法吗?
以下是我的dev和prod日志文件的屏幕截图
注意:只有当我在prod env的url中使用www
时才会发生500错误。使用任何其他单词,例如。 nike
,这就是我得到的
答案 0 :(得分:2)
根据symfony documentation,要从控制器返回404,您需要执行以下操作:
throw $this->createNotFoundException('The product does not exist');
然而,你有
throw $this->NotFoundHttpException
您看到的错误告诉您NotFoundHttpException
不存在。要解决您的问题,只需将NotFoundHttpException
替换为createNotFoundException
答案 1 :(得分:0)
你致电Eduflas.. UniversityResolver->NotFoundHttpException();
如果你想像这样转发异常,你应该声明它。
Symfony控制器有$this->createNotFoundException('Something Not found');
你可以像这样抛出404:
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException
//...
throw new NotFoundHttpException("Not found");
使用这种方式确保存在Exception并对其进行测试。 无论如何清除您的作品并开发缓存以确保您使用“相同的代码”。 最后我想到的是 - 它可能会覆盖错误页面,你可以在你的error.html.twig或error404.html.twig上创建一些内容。你有不同的页面。
修改强>
当我输入你的http://blore.eduflats.com/
时
“array(29){[”HTTP_HOST“] => string(18)”blore.eduflats.com“[”HTTP_USER_AGENT“] => s ...”
无论如何你的开发环境。也有错误,所以它如何工作prod env ... 如果你在dev中抛出NotFoundException,你应该得到symfony调试器页面和这个错误。在porduction中这个错误是用ExceptionController捕获并显示空白错误页面(用户不应该看到异常,只有500错误)