Я только что получил работу по минимизации (как объединить и минимизировать 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
вручную? Есть ли способ сделать это автоматическим?
Хорошо, я нашел этот камень в документах 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'
] : [],