Может кто-нибудь объяснить, как минимизация активов Yii должна работать на Heroku?

1

Я только что получил работу по минимизации (как объединить и минимизировать JS и CSS для приложения Yii на Heroku?) Локально. Однако он создает файл all-1bc649be34b1e6afc9b2419687cde016.js разделе web/assets/. Yii создает .gitignore чтобы игнорировать все в этом каталоге. Ни один из файлов не попадет в Heroku. Даже если я использую heroku run yii asset assets.php config/assets-prod.php он будет создавать только эфемерные файлы, недоступные для веб-динамиков. (Как подозревали, что он не работает. CSS не существует!) Как работает минимизация с Heroku? Что произойдет, если я изменю файл? Должен ли я снова запустить команду assets вручную? Есть ли способ сделать это автоматическим?

Теги:
yii2
heroku
yii

1 ответ

2
Лучший ответ

Хорошо, я нашел этот камень в документах Heroku. https://devcenter.heroku.com/articles/php-support#custom-compile-step. Оказывается, есть способ указать команду в Composer composer.json для запуска во время компиляции пула. Поэтому я добавил

"scripts": {
    "compile": "php yii asset assets.php config/assets-prod.php"

и развернуто, и оно автоматически генерирует минифицированные активы! Уф! Это f----- заняло 10 часов, чтобы получить работу - путь больше, чем должен был быть!

О, я должен, вероятно, упомянуть, что мне пришлось взломать config/console.php чтобы получить команду yii для запуска на Heroku, потому что она дает ошибку о Gii.

'bootstrap' => YII_ENV == 'dev' ? ['log', 'gii'] : ['log'],
'modules' => YII_ENV == 'dev' ? [
  'gii' => 'yii\gii\Module'
] : [],

Ещё вопросы

Сообщество Overcoder
Наверх
Меню