2013-10-03 4 views
2

Я развернул приложение Symfony2 для Heroku с CHH heroku-buildpack-php.Активы под/web/bundles не найдены в продукции Symfony2

После нажатия кода Heroku, я использую 'Heroku запустить Баш' в:
1) PHP приложение кэша/консоли: ясно --env =
лезвие 2) PHP приложение/консольных активов: установить --symlink
3) PHP приложение/консоль assetic: свалка --env = прод

Во всяком случае, сбрасывали активы на/веб/связки/... не служил, и они показывают 404 Not Found (я имею в виду, каждый актив отдельно не найден). Но, например, /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 с процессом, разместившей.

Смежные вопросы