1

每当我尝试访问(几乎)任何页面/路由时,都会收到如下错误:

Filesystem.php 第 130 行中的 ContextErrorException:警告:file_get_contents(C:_CODE\symfony2\vendor\sensio\distribution-bundle\Sensio\Bundle\DistributionBundle/Resources/views/Configurator/Step/doctrine.html.twig):无法打开流:没有这样的文件或目录

基本上,Symfony 似乎在拼凑来自 Vagrant/Linux 和 Windows 环境的 URL,因此无法找到一堆 twig 文件。

关于我的设置的一点:

我在 Windows 机器上有我的 Symfony 文件,它们被映射到 Vagrant 盒子上。我只是利用默认的“。” -> “/vagrant” 映射,然后让 puppet 配置从“/vagrant/web” -> “/var/www” 创建一个符号链接(“.” 是 Symfony 和 vagrantfile 所在的位置)。设置基本上是从https://github.com/nater1067/Vagrant-Symfony-2复制的。只是为了确保不是我,我使用了该仓库中的“stock”git pull,然后转到http://localhost/config(在注释掉只允许来自 localhost 的连接的限制之后),上面的错误出现在第 2 步。

我试过的:

从 repo 的 puppet 文件中可以看出,它似乎已经正确地将 web 文件 (/var/www/*) 的所有者设置为 vagrant:vagrant。我还尝试将整个 C 驱动器映射到 /vagrant/c。然后使用符号链接将正确的 ../%Symfony%/web 文件放入 /var/www,但这也不起作用。我还尝试将 /var/www 下的所有目录和文件的权限设置为 777。

问题:

我还需要对 Windows/Vagrant/Symfony 设置做些什么来确保 Symfony 不会尝试将 Linux 和 Windows 路径拼凑在一起吗?我的下一步是放弃,并将文件从 Windows sftp 到 vagrant box。

4

2 回答 2

1

你在本地机器上执行任何 symfony 命令吗?基本上你应该只通过你的 IDE 编辑文件,其他所有东西都应该在 vagrant 机器上。Symfony 本身永远不会意识到涉及到另一个操作系统的事实。只要您从虚拟机运行所有内容,就不会发生这种情况。

于 2015-04-17T15:25:13.947 回答
0

您应该简单地反转您的配置。把你的 Symfony 文件放在你的 Vagrant 盒子里;接下来,使用某种网络共享,使用一些东西在外面编辑它们。

这只有一个缺点:与您的 Vagrant 盒子的连接可能很慢,尤其是使用 NFS 进行共享。

于 2015-04-17T11:02:41.217 回答