Php Heroku上的Symfony2(官方构建包)-如何转储资产?

Php Heroku上的Symfony2(官方构建包)-如何转储资产?,php,symfony,heroku,assetic,Php,Symfony,Heroku,Assetic,我对heroku(官方php构建包)上的Symfony资产有问题。 我的代码基于Symfony 2.5,具有新的3.0文件夹结构,它使用一个本地js和css文件(其余通过cdn加载)。 这些文件完全按照此处所述加载: 在dev环境中,一切正常,但当我将env更改为prod时,我需要执行assetic:dump以强制symfony将我的资产文件转储到web/css | js文件夹中。我在本地机器上进行了测试(将env切换到prod),一切正常。问题在于heroku及其短暂的文件系统: 当我尝试通过

我对heroku(官方php构建包)上的Symfony资产有问题。 我的代码基于Symfony 2.5,具有新的3.0文件夹结构,它使用一个本地js和css文件(其余通过cdn加载)。 这些文件完全按照此处所述加载:

在dev环境中,一切正常,但当我将env更改为prod时,我需要执行assetic:dump以强制symfony将我的资产文件转储到web/css | js文件夹中。我在本地机器上进行了测试(将env切换到prod),一切正常。问题在于heroku及其短暂的文件系统:

当我尝试通过composer post-install cmd运行assetic:dump--env=prod,然后部署finish并获得成功时,但每个请求都以以下结果结束:

AH01071: Got error 'PHP message: PHP Fatal error: Uncaught exception
'InvalidArgumentException' with message 
'The file "/tmp/build_012d99e7-a14a-4626-afec-3ded3d4baeec/app/config/routing.yml"
当我在没有assetic:dump的情况下部署应用程序时,我的本地css和js文件当然不可用:/

也许还有其他脚本挂钩可以用来转储我的资产


有什么想法吗?任何成功使用assetic:dump on heroku和官方php buildpack的用户?

php和Symfony支持在过去几个月里进行了大量改进,请查看以下链接:

最重要的是:

SYMFONY\u ENV

SYMFONY_ENV
的值用于定义CLI命令的环境。因此,您不必在自定义命令中处理类似于
--env=prod
的事情。来自
Composer.json
(如
post-install cmd
)的Composer钩子将在定义的环境中自动执行。请注意:将其设置为与
dev
不同的值。
dev
环境可能无法在Heroku上正常工作,因为没有安装Composer的开发依赖项(
require dev
)。这是由于在Heroku上安装
composer
期间出现了
--no dev
标志。例如,在Symfony标准版中,
dev
环境将无法运行,SensioGeneratorBundle永远不会安装(如果您不将其移动到
require
输入
composer.json

/tmp路径上的错误

所提到的错误应该已经用修复。另见

部署期间的自定义命令

assetic:dump
这样的自定义命令可以放在
compile
键下的
composer.json
脚本部分:

{
    "scripts": {
        "compile": [
          "app/console assetic:dump"
        ]
    }
}

另见。环境取自上述
SYMFONY\u ENV
环境变量。

谢谢,我已经检查了几个链接,现在我所有的问题似乎都解决了:>