Я хочу настроить компиляцию и минимизацию активов в Yii, как это делает Rails. http://www.yiiframework.com/doc-2.0/guide-structure-assets.html
Я подумывал использовать мини-маркер PHP. Я бы предпочел не вручную компилировать и проверять активы в Git. Однако, даже если это сработало, Heroku не появляется на сервере новые файлы, которые не находятся в Git. Зачем?
>heroku run bash
Running 'bash' attached to terminal... up, run.6857
~ $ cd web
cd web
~/web $ ls
ls
MySample.php css images index.php robots.txt
assets favicon.ico index-test.php js
~/web $ echo hello > hello.txt
echo hello > hello.txt
~/web $ cat hello.txt
cat hello.txt
hello
~/web $ exit
exit
exit
$ curl -I http://xxxxxx.herokuapp.com/hello.txt
HTTP/1.1 404 Not Found
Причина, по которой hello.txt не найдена, заключается в том, что ваш запрос curl -I будет обработан новым экземпляром вашего приложения. Чтобы продемонстрировать, я могу удалить свой index.php в bash, но когда я использую curl -I для его получения, я получаю 200 OK.
$ heroku run bash
Running 'bash' attached to terminal... up, run.3070
~ $ cd web
~/web $ ls
index.php
~/web $ rm index.php
~/web $ ls
~/web $ curl -I http://xxxxx.herokuapp.com/index.php
HTTP/1.1 200 OK
Другой способ показать это, чтобы открыть два разных соединения bash, затем запустить heroku ps
$ heroku ps
=== run: one-off processes
run.3070 (1X): up 2015/04/01 19:30:07 (~ 37m ago): 'bash'
run.7783 (1X): up 2015/04/01 19:59:48 (~ 8m ago): 'bash'
Эти два процесса не собираются делиться эфемерной памятью.
heroku run
создает новый экземпляр ... так что минимизация ресурсов через приложение и сохранение их во временную файловую систему все еще может работать, потому что они сохраняются на запущенном экземпляре.