2013-10-03 67 views
2

我已經使用CHH heroku-buildpack-php部署了一個Symfony2應用程序到Heroku。Symfony2生產中未找到/ web/bundles下的資產

推代碼的Heroku後,我使用 'heroku上運行的bash' 到:
1)PHP應用程序/控制檯高速緩存:清楚--env = PROD
2)PHP應用程序/控制檯資產:安裝--symlink
3)PHP應用程序/控制檯assetic:轉儲--env =督促

總之,傾倒/網絡/包/ ......不提供服務的資產,他們表現出404未找到(我的意思是,每個資產分開找不到)。但是,例如,/ web/favicon.ico已正確提供給客戶端。

這不會發生在dev模式,在我的本地主機。

它可能是服務器上的任何權限問題?我應該在Procfile中運行這些命令嗎?

在此先感謝。

回答

2

終於想出了答案: 一旦部署過程完成,Heroku不允許你修改文件系統,所以我使用Profile文件告訴Heroku運行一個install.sh,在其中運行這些命令。

Procfile看起來是這樣的:

web: sh ./install.sh 

而且install.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與部署過程procceed。