使用Heroku进行Symfony2部署:转储资产

时间:2014-12-16 09:58:01

标签: symfony heroku

我使用Heroku以默认配置部署我的Symfony2应用程序,但不会转储资产。

我已添加到composer.json:

...
"scripts": {
    "post-install-cmd": [
        "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
        "php app/console --env=prod assetic:dump"
    ]
},
...

这是正确的方法吗?

在Procfile中,不起作用。随着:

heroku run php app/console --env=prod assetic:dump

也不起作用。

谢谢,

参考:https://devcenter.heroku.com/articles/getting-started-with-symfony2

1 个答案:

答案 0 :(得分:4)

这对我有用:

  "scripts": {
    "post-install-cmd": [
      "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::removeSymfonyStandardFiles",
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
    ],
    "post-update-cmd": [
      "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::removeSymfonyStandardFiles",
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
    ],
    "compile": [
      "rm web/app_dev.php",
      "php app/console assetic:dump --no-debug"
    ]
  },

注意“编译”部分。这个关键名称是Heroku惯例。

Symfony docs:http://symfony.com/doc/current/cookbook/deployment/heroku.html表示您可以使用Custom Composer Command

您不需要添加--env = prod选项,因为您应该在Heroku中添加环境变量。