Skip to content
Lightweight asset loader for CodeIgniter 4
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Lightweight asset loader for CodeIgniter 4

Quick Start

  1. Install with Composer: > composer require tatter/assets
  2. Put CSS & JS files in: public/assets
  3. Add in head tag: <?= service('assets')->display('css') ?>
  4. Add to footer: <?= service('assets')->display('js') ?>


Provides out-of-the-box asset loading for CSS and JavaScript files for CodeIgniter 4


Install easily via Composer to take advantage of CodeIgniter 4's autoloading capabilities and always be up-to-date:

  • > composer require tatter/assets

Or, install manually by downloading the source files and adding the directory to app/Config/Autoload.php.

Configuration (optional)

The library's default behavior can be overridden or augment by its config file. Copy src/Config/Assets.php.example to app/Config/Assets.php and follow the instructions in the comments. If no config file is found the library will use its defaults.


If installed correctly CodeIgniter 4 will detect and autoload the library, service, and config. Use the service display() method to retrieve the appropriate assets: <?= service('assets')->display('css') ?>


The library searches the assets directory (default: public/assets) for files matching the current route, loading them in a cascading fashion for each route segment.


The library will first load any root assets (public/assets/*.css *.js), then assets in the 'users' subfolder (public/assets/users/), then 'view' subfolder, then '12' subfolder. Any missing or invalid folders are ignored.

Additional assets may be loaded from the config variable $routes - this is particularly helpful for including pre-bundled libraries.


public $routes = [
	'' => ["bootstrap/dist/css/bootstrap.min.css", "bootstrap/dist/js/bootstrap.bundle.min.js"]

This tells the library to load Bootstrap for every route ('') without having to move it from its pre-bundled subdirectory.

You can’t perform that action at this time.