使用 Capistrano 的 Symfony 部署抛出 "The target directory "web“不存在。”在资产安装

Symfony deploy with capistrano throw "The target directory "web" does not exist." on assets install

我有一个 symfony 系统,我正试图用 capistrano 部署它。通过 ssh 连接。

抛出错误的函数是 symfony:assets:install,如下所示:

php /var/www/xx/releases/20200415083534/app/console assets:install web --symlink

它抛出以下错误

[InvalidArgumentException]                  
  The target directory "web" does not exist. 

正如您所期望的那样,该文件夹就在那里 - 我的用户是所有者并且有权使用它。 如果我转到这个确切的文件夹 /20200415083534 和 运行 与上面相同的脚本,它会按预期安装资产。

composer extra 看起来像这样:

"extra": {
    "symfony-app-dir": "app",
    "symfony-web-dir": "web",
    "symfony-assets-install": "relative",
    "incenteev-parameters": [
      {
        "file": "app/config/parameters.yml"
      },
      {
        "file": "app/config/parameters_prod.yml",
        "dist-file": "app/config/parameters_prod.yml.dist"
      }
    ],
    "branch-alias": {
      "dev-master": "2.8.*"
    }
  }

有什么想法吗?

P.S。我检查过这个 因为它有同样的错误,但情况不同,他的解决方案不适用于我的情况。

这听起来可能有点愚蠢,但我通过在 deploy.rb 文件的控制台应用程序路径中添加 space 确实解决了这个问题。 (我认为问题出在其他地方,但在我的案例中解决了这个问题) 看起来像:

set :symfony_console_path, " app/console"

现在。

这已将命令行更改为:

php /var/www/xx/releases/20200415083534/ app/console assets:install web --symlink

哪个确实按预期执行。

希望这能帮助解决这个问题的人(就像我这几天所做的那样)。