En desarrollo, todos mis activos de javascript se agregan a la variable de obtención body=1
. ¿Qué está haciendo esto realmente?¿qué hace? Body = 1 do en rails ¿3.1 canalización de activos?
http://localhost:3000/assets/application.js?body=1
En desarrollo, todos mis activos de javascript se agregan a la variable de obtención body=1
. ¿Qué está haciendo esto realmente?¿qué hace? Body = 1 do en rails ¿3.1 canalización de activos?
http://localhost:3000/assets/application.js?body=1
pesca de arrastre a través del código fuente Piñón encontramos:
# Returns a 200 OK response tuple
def ok_response(asset, env)
if body_only?(env)
[ 200, headers(env, asset, Rack::Utils.bytesize(asset.body)), [asset.body] ]
else
[ 200, headers(env, asset, asset.length), asset ]
end
end
body_only?
se establece cuando ?body=1 or true
Para un activo estática, Asset.body
se define como:
def body
# File is read everytime to avoid memory bloat of large binary files
pathname.open('rb') { |f| f.read }
end
Mientras pasando el activo a su auto es un "objeto cuerpo en bastidor capaz"
# Add enumerator to allow `Asset` instances to be used as Rack
# compatible body objects.
def each
yield to_s
end
Cuando nos fijamos en el bundled_asset
, la Asset.body
se redefine como recuperar el cuerpo del activo solamente y no incluye ninguna dependencia. Asset.to_a
se define como recuperar el activo en sí mismo y todas sus dependencias como una matriz transferida a Rack.
De esta manera, los activos no se combinan entre sí sino que se toman como objetos individuales, por lo que los archivos CSS individuales siguen siendo individuales.