Class: BunBunBundle::DevCacheMiddleware
- Inherits:
-
Object
- Object
- BunBunBundle::DevCacheMiddleware
- Defined in:
- lib/bun_bun_bundle/dev_cache_middleware.rb
Overview
Rack middleware that sets no-cache headers on asset requests in development.
This ensures the browser always fetches fresh assets during development, avoiding stale-cache issues when files are rebuilt.
Usage:
# In Rails:
# Automatically added by the Railtie in development.
# In Hanami:
# Automatically added by the Hanami integration in development.
# Manual Rack usage:
use BunBunBundle::DevCacheMiddleware
Constant Summary collapse
- ASSET_EXTENSIONS =
%w[ .js .css .map .json .png .jpg .jpeg .gif .svg .webp .woff .woff2 .ttf .eot ].freeze
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app) ⇒ DevCacheMiddleware
constructor
A new instance of DevCacheMiddleware.
Constructor Details
#initialize(app) ⇒ DevCacheMiddleware
Returns a new instance of DevCacheMiddleware.
27 28 29 |
# File 'lib/bun_bun_bundle/dev_cache_middleware.rb', line 27 def initialize(app) @app = app end |
Instance Method Details
#call(env) ⇒ Object
31 32 33 34 35 36 37 38 39 40 |
# File 'lib/bun_bun_bundle/dev_cache_middleware.rb', line 31 def call(env) status, headers, body = @app.call(env) if asset_request?(env['PATH_INFO']) headers['Cache-Control'] = 'no-store, no-cache, must-revalidate' headers['Expires'] = '0' end [status, headers, body] end |