Vagrant + Symfony2 环境下的 ContextErrorException 异常奇怪行为

3

在此之前,我从未遇到过Symfony2或Vagrant的任何问题,现在我对发生的事情感到完全迷茫。

我的环境突然崩溃,并且只会产生以下错误:

ContextErrorException: Warning: 
file_get_contents(/Users/Paul/Sites/Project/htdocs/project-web/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/views/Exception/exception_full.html.twig): 
failed to open stream: No such file or directory in /var/www/project-web/vendor/twig/twig/lib/Twig/Loader/Filesystem.php line 130

这种情况很奇怪,因为 Symfony 正在引用我的本地文件系统...
/Users/Paul/Sites/Project/htdocs/project-web/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/views/Exception/exception_full.html.twig

...而不是运行Ubuntu的box环境,然后引用Unix文件系统位置的“Filesystem.php”...

/var/www/project-web/vendor/twig/twig/lib/Twig/Loader/Filesystem.php

我无法通过这个屏幕。我刚刚创建了一个全新的环境并将其打包为自己的盒子,但是在使用该盒子时仍然出现此错误。

有人可以帮忙吗?

3个回答

13

我第一个猜测是你先在本地运行了它,路径已经缓存。如果是这样,应该通过在vagrant环境中运行以下命令来解决:

我的第一个猜测是您已经在本地运行过它,并且路径已经被缓存。如果是这种情况,可以通过在Vagrant环境中运行以下命令来修复:

php app/console cache:clear

如果你运行的是app.php而不是app_dev.php,那么请添加--env=prod


我其实是自己想到的,然后因为太蠢而打了自己一耳光! - Paul Danelli
1
有时候,通过删除“app/cache/[env]”文件夹来进行暴力清除会更好一些 - 我不确定为什么。 - bassplayer7

1
始终在vagrant虚拟机中(通过ssh)使用命令行,而不是在Windows路径上使用cmd。
vagrant up
vagrant ssh
... some auth ...
cd /your/project/path
php app/console ...

0

我正在使用Symfony 3.1的Homestead。

我不得不从主机机器中的项目根目录中删除var/cache文件夹。

rm -rf var/cache/解决了这个问题。

之前,我尝试过php app/console cache:clear,但没有结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接