Php Heroku上的Symfony2(官方构建包)-如何转储资产?
我对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并获得成功时,但每个请求都以以下结果结束: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及其短暂的文件系统: 当我尝试通过
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
环境变量。谢谢,我已经检查了几个链接,现在我所有的问题似乎都解决了:>