【问题标题】:Symfony2 and Assetics : symlink on Windows 7?Symfony2 和 Assetics:Windows 7 上的符号链接?
【发布时间】:2012-06-09 07:43:57
【问题描述】:

我很难使用资产在我的视图中加载资源(我使用 Symfony2)。 我在 Linux (Ubuntu 10.4) 上工作,几天前切换到 Windows 7。我一直遇到问题(例如,有些图片无法加载),但至少大多数图片、所有样式和脚本都可以正常加载。

当我切换到 Windows 时,一些资源没有加载,所以我尝试了 php app/console assets:install web --symlink

看到它删除了我正在处理的捆绑包的整个公用文件夹,我感到非常惊讶。并且无法再次找到源代码(幸运的是,我保存了其中一些,并且由于缓存文件,我能够检索到我的大部分工作)。

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

现在该命令甚至不再响应(它一直在删除我的一些备份文件夹中的资源!!)。

底线:有没有办法在 Windows 7 上配置资产,这样它就不会吃掉我的文件并正确加载资源(包括 css 中的图像)?

提前致谢!

编辑:

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

【问题讨论】:

    标签: windows-7 symfony symlink assets


    【解决方案1】:

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

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

    【讨论】:

    • 这就是我所看到的,但我还是遇到了麻烦......好吧,现在它正在工作......
    • 它不适用于我们在带有 XAMPP 和 PHP 5.3.8 的 Windows 7 机器上,无论文档如何,请参阅 stackoverflow.com/questions/13376319/…
    【解决方案2】:

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

    【讨论】:

    • 这应该是正确的答案,符号链接只能用管理员权限创建我不明白为什么
    【解决方案3】:

    您可以使用配置 composer.json 并永久使用没有任何问题,将其放入 --symlink。这是您的操作方法。 http://www.w3docs.com/snippets/symfony/how-to-keep-symlinks-in-web-bundles-after-composer-update.html

    【讨论】:

    • 请尽可能直接发布答案,而不是发布答案的链接
    【解决方案4】:

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

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

    app/console assets:install web --symlink
    

    警告。使用硬拷贝而不是符号链接。

    但是,如果你打得很好,按照我说的去做。 (以管理员身份运行..你会得到一切顺利和顺利。

    app/console assets:install web --symlink
    

    创建的符号链接! :) 现在您无需在每次更改 css 文件时都安装 assets:install。

    附言。 git bash 控制台比本机 Windows 控制台更好,但是……例如 Ubuntu 等 Unix 系统看起来会更好。此外,带有 Xamp 的 Windows 上的 Symfony 运行速度将比在 Linux Ubuntu 系统上慢得多。我说的是在 Linux 上快 5 到 20 倍的页面响应。

    【讨论】:

      【解决方案5】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-29
        • 2014-11-22
        • 1970-01-01
        • 1970-01-01
        • 2012-11-29
        相关资源
        最近更新 更多