Skip to content

Commit dc4f4e0

Browse files
authored
Make importmap changes invalidate HTML etags by default (rails#54021)
1 parent c356b42 commit dc4f4e0

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

railties/lib/rails/generators/app_base.rb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -513,9 +513,12 @@ def hotwire_gemfile_entry
513513
[ turbo_rails_entry, stimulus_rails_entry ]
514514
end
515515

516+
def using_importmap?
517+
options[:javascript] == "importmap"
518+
end
519+
516520
def using_js_runtime?
517-
(options[:javascript] && !%w[importmap].include?(options[:javascript])) ||
518-
(options[:css] && !%w[tailwind sass].include?(options[:css]))
521+
(options[:javascript] && !using_importmap?) || (options[:css] && !%w[tailwind sass].include?(options[:css]))
519522
end
520523

521524
def using_node?

railties/lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb.tt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,10 @@ class ApplicationController < ActionController::<%= options.api? ? "API" : "Base
22
<%- unless options.api? -%>
33
# Only allow modern browsers supporting webp images, web push, badges, import maps, CSS nesting, and CSS :has.
44
allow_browser versions: :modern
5+
<%- if options.using_importmap? -%>
6+
7+
# Changes to the importmap will invalidate the etag for HTML responses
8+
stale_when_importmap_changes
9+
<% end -%>
510
<% end -%>
611
end

0 commit comments

Comments
 (0)