Приложение 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
, имеет ли это смысл?