config.assets.compile=true в Rails production, почему нет?

Приложение Rails по умолчанию, установленное rails new, имеет config.assets.compile = false в production.

А обычный способ сделать это - запустить rake assets:precompile перед развертыванием приложения, чтобы убедиться, что все активы конвейера активов скомпилированы.

Что же произойдет, если я установлю config.assets.compile = true в production?

Мне больше не нужно будет запускать precompile. Как я полагаю, это произойдет в первый раз, когда актив будет запрошен, он будет скомпилирован. Это приведет к снижению производительности в первый раз (и это означает, что вам, как правило, потребуется js runtime в production для этого). Но кроме этих минусов, после того, как актив был лениво скомпилирован, я думаю, что все последующие обращения к этому активу не будут иметь никакого падения производительности, производительность приложения будет точно такой же, как и с предварительно скомпилированными активами после этой первой ленивой компиляции. это правда?

Может быть, я что-то упускаю? Есть ли другие причины не устанавливать config.assets.compile = true в production? Если у меня есть JS runtime в продакшене, и я готов пойти на компромисс с ухудшением производительности при первом доступе к активу, в обмен на отсутствие необходимости запускать precompile, имеет ли это смысл?

176
задан jrochkind 11 January 2012 в 15:27
поделиться