在Symfony2生产中找不到/ web / bundles下的资产

时间:2013-10-03 03:00:19

标签: php bash symfony heroku procfile

我已经使用CHH heroku-buildpack-php向Heroku部署了一个Symfony2应用程序。

将代码推送到heroku之后,我使用'heroku run bash'来: 1)php app / console cache:clear --env = prod
2)php app / console资产:安装--symlink
3)php app / console assetic:dump --env = prod

无论如何,/ web / bundles / ...上的转储资产都没有提供,它们显示404 Not Found(我的意思是,找不到每个资产)。但是,例如,/ web / favicon.ico已正确地提供给客户端。

这不是在开发模式下,在我的localhost中发生的。

可能是服务器上的任何权限问题?我应该在Procfile中运行这些命令吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

最后想出了答案: 一旦部署过程完成,Heroku不允许您修改文件系统,因此我使用Profile文件告诉Heroku运行install.sh,我在其中运行这些命令。

Procfile如下所示:

    web: sh ./install.sh

并安装.sh:

    php app/console cache:clear --env=prod
    php app/console assets:install --env=prod
    php app/console assetic:dump --env=prod
    php app/console doctrine:schema:update --force
    php app/console doctrine:fixtures:load --append
    sh ./bin/run

最后一行非常重要,因为它告诉Heroku采用部署过程。