Symfony2和Assetics:Windows 7上的符号链接?

时间:2012-06-05 09:28:28

标签: windows-7 symfony symlink assets

我很难使用资产来在我的视图中加载资源(我使用Symfony2)。 我正在使用Linux(Ubuntu 10.4)并在几天前切换到Windows 7。我一直遇到麻烦(例如有些图片没有加载),但至少大多数图片,以及所有样式和脚本都正常加载。

当我切换到Windows时,某些资源未加载,因此我尝试了php app/console assets:install web --symlink

我很惊讶地发现它删除了我正在处理的捆绑包的整个公共文件夹。并且没有办法再找到这些来源(幸运的是,我已经保存了其中的一些,并且由于缓存的文件,我能够检索我的大部分工作)。

在我恢复文件(并备份它们)之后,我再次尝试命令。结果相同。我尝试没有--symlink,它在web/bundle文件夹中创建了一些文件夹,而不是以前的文件(据说是符号链接)。

现在该命令甚至不再回答(即使在我的一些备份文件夹中,它也一直在删除我的来源!!)。

结论:有没有办法在Windows 7上配置资产,以便它不会占用我的文件并正确加载资源(包括css中的图像)?

提前致谢!

编辑:

我刚刚再次运行该命令,这次它有效(复制了web / bundle / ...中的文件)。我必须说我真的不明白这次是如何或为什么有效...如果有人知道......

5 个答案:

答案 0 :(得分:24)

要在PC上运行assets:install web --symlink,您需要elevated command prompt(管理员模式下cmd.exe的奇特单词)。

答案 1 :(得分:4)

Symfony2使用PHP symlink功能,根据它应该适用于Windows Vista,Server 2008或更高版本的文档。

默认情况下only Administrators can create symlinks in Windows。因此,您必须使用提升的提示或为您的用户提供 SeCreateSymbolicLinkPrivilege权限

答案 2 :(得分:1)

你可以使用Windows控制台,但Git Bash更好。获取并下载。 PS。如果您在此之前从未使用过git,那么这是正确的开始时间。 :)

当你安装它时,在windows程序中搜索git bash并右键单击它以管理员身份运行。如果您在右键单击当前文件夹“git bash here”时打开了Git bash,它将无法正常工作,因为默认情况下它不会在管理员模式下启动。如果你这样做了,你会得到这个警告。

app/console assets:install web --symlink

enter image description here 警告。使用硬拷贝而不是符号链接。

然而,如果你玩得很好,就像我说的那样。 (以管理员身份运行..你会让一切顺利。

app/console assets:install web --symlink

enter image description here 符号链接在哪里创建! :)现在您不需要资产:每次更改css文件时都安装。

聚苯乙烯。 git bash控制台比原生Windows控制台更好但是...例如Ubuntu等Unix系统看起来会更好。使用Xamp的Windows上的Symfony运行速度比Linux Ubuntu系统慢得多。我说的是Linux上的页面响应速度提高了5到20倍。

答案 3 :(得分:0)

你可以使用configure the composer.json并永远使用而不会出现任何问题,放入其中--symlink。这就是你如何做到的。 http://www.w3docs.com/snippets/symfony/how-to-keep-symlinks-in-web-bundles-after-composer-update.html

答案 4 :(得分:0)

您可以在composer.json

中添加此配置选项
{
    "extra": {
        "symfony-assets-install" : "symlink",
    }
}