Adding Cache Control Headers to Static Assets in Laravel: A Step-by-Step Tutorial

cache control headers, static assets

In this tutorial, we will explore how to add cache control headers on static assets like JavaScript, CSS, and images using Laravel itself. By implementing cache control headers, you can optimize the loading time of your website and enhance the user experience.

Understanding Cache Control Headers

Cache control headers are HTTP headers that instruct the browser on how to handle caching of static assets. By setting appropriate cache control headers, you can control how long the browser should cache certain files before requesting them again from the server. This can significantly improve the performance of your website by reducing unnecessary network requests.

Using Laravel Middleware

Laravel provides a powerful middleware feature that allows you to modify the HTTP request and response. We can leverage this feature to add cache control headers to our static assets.

To begin, create a new middleware by running the following command in your Laravel project directory:

php artisan make:middleware CacheControlMiddleware

This will generate a new file called CacheControlMiddleware.php in the app/Http/Middleware directory. Open the file and modify the handle() method as follows:

public function handle(Request $request, Closure $next)
$response = $next($request);

if ($response->isSuccessful() && $response->headers->get('Content-Type') !== 'text/html') {
$response->header('Cache-Control', 'public, max-age=31536000');

return $response;

In the above code, we first retrieve the response from the next middleware in the chain using $next($request). Then, we check if the response is successful and if the content type is not text/html. This ensures that we only add cache control headers to static assets and not HTML pages.

If the conditions are met, we set the Cache-Control header to public, max-age=31536000. This instructs the browser to cache the asset for one year (31536000 seconds).

Registering the Middleware

Once we have created the middleware, we need to register it in the Laravel middleware stack. Open the app/Http/Kernel.php file and add the following line to the $middleware array:


This ensures that the middleware is applied to all incoming requests.

Clearing the Cache

After implementing the cache control headers, you may need to clear the browser cache to see the changes take effect. You can do this by simply refreshing the page or by using the browser’s developer tools to clear the cache.


By adding cache control headers to your static assets through Laravel, you can effectively manage browser caching and improve the performance of your website. This tutorial has provided step-by-step instructions on how to create a middleware and configure it to add the necessary headers. Implementing cache control headers is a simple yet powerful technique for optimizing website loading times.

Now that you have learned how to add cache control headers to static assets using Laravel, you can enhance the performance and user experience of your website. Start implementing these techniques and see the positive impact on your website’s loading speed.


Source :

Leave a Reply

Your email address will not be published. Required fields are marked *

error: Content is protected !!