Skip to content

Responses

StatusWhen
200Image served — from a local disk as a file response, from a remote disk as a stream
302Remote disk with remote_redirect = true — redirect to temporaryUrl()
403route.signed = true and the signature is missing or invalid
404Validation failed; unknown preset; source not found, not downloadable, too large or too many pixels; Glide failed to read or encode; integrity or decode check rejected the result; SVG sanitizer rejected the file
429Throttle limit (route.middleware) exceeded
503Another process holds the generation lock for this file for more than 15 seconds
HeaderValue
Content-Typeimage/webp, image/avif, image/jpeg, image/png, image/gif, image/svg+xml; anything else application/octet-stream
Cache-ControlGenerated by this request (raster): no-store. Otherwise: public, max-age=<cache_max_age>, s-maxage=<cache_max_age>, immutable
ETag"<mtime base36>-<size base36>"
Last-ModifiedFile mtime
Content-Dispositioninline
X-Content-Type-Optionsnosniff
Content-LengthStreamed responses from a remote disk
Content-Security-PolicySVG: default-src 'none'; style-src 'unsafe-inline'; sandbox

The 302 redirect carries Laravel’s default headers, not the ones above.

SourceFile
Raster<path>/md5(json_encode(sorted query without _t)).<ext>
SVG (passthrough)<path>/md5(src).svg

<ext> is the output format; jpeg and pjpg are stored as jpg.