32
開発中に、すべてのjavascriptアセットに変数body=1
が追加されています。これは実際に何をしていますか?スプロケットのソースコードを介してトロール何が?レール= 3.1の資産パイプラインでbody = 1は何ですか?
http://localhost:3000/assets/application.js?body=1
開発中に、すべてのjavascriptアセットに変数body=1
が追加されています。これは実際に何をしていますか?スプロケットのソースコードを介してトロール何が?レール= 3.1の資産パイプラインでbody = 1は何ですか?
http://localhost:3000/assets/application.js?body=1
我々は見つける:
# 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?
が設定されている静的資産の?body=1 or true
、Asset.body
のように定義されている場合:
def body
# File is read everytime to avoid memory bloat of large binary files
pathname.open('rb') { |f| f.read }
end
一方資産を自己に戻す「ラック対応のボディオブジェクト」
# Add enumerator to allow `Asset` instances to be used as Rack
# compatible body objects.
def each
yield to_s
end
我々はbundled_asset
を見て、Asset.body
だけでなくすべての依存関係を含めた資産の体を取り出すとして再定義されます。 Asset.to_a
は、アセット自体とそのすべての依存関係をアセットとしてRackに渡して取得することとして定義されています。
このように、アセットは結合されずに個々のオブジェクトとして扱われるため、個々のCSSファイルはまだ個別です。