method
send_preload_links_header
v7.0.0 -
Show latest stable
-
0 notes -
Class: ActionView::Helpers::AssetTagHelper
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1
- 4.2.7
- 4.2.9
- 5.0.0.1
- 5.1.7
- 5.2.3
- 6.0.0
- 6.1.3.1 (0)
- 6.1.7.7 (0)
- 7.0.0 (0)
- 7.1.3.2 (0)
- What's this?
send_preload_links_header(preload_links, max_header_size: MAX_HEADER_SIZE)
private
Hide source
# File actionview/lib/action_view/helpers/asset_tag_helper.rb, line 543 def send_preload_links_header(preload_links, max_header_size: MAX_HEADER_SIZE) return if preload_links.empty? return if respond_to?(:response) && response.sending? if respond_to?(:request) && request request.send_early_hints("Link" => preload_links.join("\n")) end if respond_to?(:response) && response header = response.headers["Link"] header = header ? header.dup : +"" # rindex count characters not bytes, but we assume non-ascii characters # are rare in urls, and we have a 192 bytes margin. last_line_offset = header.rindex("\n") last_line_size = if last_line_offset header.bytesize - last_line_offset else header.bytesize end preload_links.each do |link| if link.bytesize + last_line_size + 1 < max_header_size unless header.empty? header << "," last_line_size += 1 end else header << "\n" last_line_size = 0 end header << link last_line_size += link.bytesize end response.headers["Link"] = header end end