По умолчанию приложение Rails, установленное rails new, имеет config.assets.compile = false.
И обычный способ сделать это - запустить rake assets:precompile перед развертыванием вашего приложения, чтобы убедиться, что все активы конвейера активов скомпилированы.
Итак, что произойдет, если я установил config.assets.compile = true в production?
Мне больше не нужно будет запускать precompile. То, что, как я полагаю, произойдет, - это первый раз, когда запрашивается актив, он будет скомпилирован. Это будет первое поражение производительности (и это означает, что вам обычно требуется время выполнения js в процессе производства). Но, помимо этих недостатков, после того, как актив был лениво скомпилирован, я думаю, что весь последующий доступ к этому ресурсу не будет иметь производительности, производительность приложения будет точно такой же, как и с предварительно скомпилированными активами после этой первоначальной ленивой компиляции первого попадания. это правда?
Есть ли что-то, что мне не хватает? Любые другие причины не устанавливать config.assets.compile = true в процессе производства? Если у меня есть время выполнения JS в производстве, и я готов принять компромисс пониженной производительности для первого доступа к ресурсу, в обмен на отсутствие необходимости запускать precompile, имеет ли это смысл?