Symfony2和Assetics:在Windows 7上使用符号链接?

8
我在使用assetics在我的视图中加载资源时遇到了困难(我使用Symfony2)。我之前一直在Linux(Ubuntu 10.4)上工作,几天前切换到Windows 7。我一直有问题(例如某些图片无法加载),但至少大多数图片以及所有样式和脚本都可以正常加载。
当我切换到Windows时,一些资源没有加载,所以我尝试了一个“php app/console assets:install web --symlink”。
我很惊讶地看到它删除了我正在工作的bundle的整个public文件夹。而且没有办法再找到这些资源(幸运的是,我保存了其中一些文件,并且由于缓存文件,我能够检索到我的大部分工作)。
在恢复了我的文件(并备份了它们)之后,我再次尝试了该命令。结果相同。我尝试了不带“--symlink”的方式,它创建了一些文件夹在“web/bundle”文件夹中,而不是之前存在的文件(应该是符号链接)。
现在该命令甚至不再回答(它甚至在我的一些备份文件夹中擦除了我的源文件!)。
底线:有没有一种方法可以在Windows 7上配置assetic,以便它不会吃掉我的文件,并正确加载资源(包括css中的图片)?
提前致谢!
编辑:
我刚刚再次运行了该命令,这次它工作了(将文件复制到web/bundle/...)。我必须说我真的不明白为什么它这次能够工作...如果碰巧有人知道...
5个回答

24
要在PC上运行assets:install web --symlink,您需要一个提升的命令提示符(管理员模式下的cmd.exe)。

1
这应该是正确的答案,符号链接只能使用管理员权限创建,我不明白为什么。 - Ahmad Alfy

5

那是我看到的,但我仍然遇到了麻烦...好吧,现在它正在工作,所以... - Gabriel Theron
1
无论如何,我们在安装了XAMPP和PHP 5.3.8 的Windows 7系统中使用时发现它对我们来说无法工作,详见http://stackoverflow.com/questions/13376319/php-symlink-fails-on-windows-7。 - Ain Tohvri

1
你可以使用Windows控制台,但Git Bash更好用。下载并安装它。顺便提一句,如果你以前从未使用过git,现在是开始的时候了。 :)
安装完成后,在Windows程序中搜索Git Bash并右键以管理员身份运行。如果你从当前文件夹的右键菜单中打开Git Bash,它不会起作用,因为默认情况下没有以管理员模式启动。如果你这样做了,会得到以下警告。
app/console assets:install web --symlink

在此输入图像描述 警告。使用实际副本而不是符号链接。

但是,如果你遵循我的建议(以管理员身份运行),一切都会很顺利。

app/console assets:install web --symlink

在此输入图像描述

符号链接已创建! :) 现在,您无需每次更改css文件时都要安装资产。

附:Git Bash控制台比本机Windows控制台更好,但是......例如像Ubuntu这样的Unix系统会看起来更好。此外,使用Xamp在Windows上运行Symfony将比在Linux Ubuntu系统上慢得多。我在谈论Linux上5倍到20倍更快的页面响应速度。


0

您可以在您的composer.json中添加此配置选项:

{
    "extra": {
        "symfony-assets-install" : "symlink",
    }
}

0

请尽可能直接发布答案,而不是发布答案链接。 - Alsciende

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