Search code examples
jquerycsscodeignitercodeigniter-4

CSS Not Found Codeigniter 4


I have a problem with css include in Codeiginiter 4.

When I access this routes localhost/my_project/user_role all of the css included successfully. But, when I access this routes localhost/my_project/user_role/add there is 2 error that css net::ERR_ABORTED 404(Not Found)

enter image description here

I take a look at network tab in my web inspector, bootstrap.min.css and app.min.css is included and the status code is 200 but it still showing not found error enter image description here

This is how i load the css file enter image description here

And this is my htaccess file

# Disable directory browsing
Options All -Indexes
 
# ----------------------------------------------------------------------
# Rewrite engine
# ----------------------------------------------------------------------
 
# Turning on the rewrite engine is necessary for the following rules and features.
# FollowSymLinks must be enabled for this to work.
<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On
 
    # If you installed CodeIgniter in a subfolder, you will need to
    # change the following line to match the subfolder you need.
    # http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase
    # RewriteBase /
 
    # Redirect Trailing Slashes...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
      RewriteRule ^ %1 [L,R=301]
 
    # Rewrite "www.example.com -> example.com"
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
 
    # Checks to see if the user is attempting to access a valid file,
    # such as an image or css document, if this isn't true it sends the
    # request to the front controller, index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([\s\S]*)$ index.php/$1 [L,NC,QSA]
 
    # Ensure Authorization header is passed along
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
 
<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    ErrorDocument 404 index.php
</IfModule>
 
# Disable server signature start
    ServerSignature Off
# Disable server signature end

How could i solve this problem ? Please help


Solution

  • The new CI4 has a different structure than the previous versions. Now there is a public folder. I would suggest you put frontend assets into the public folder so your loading is much simpler and you do not have to include base_url i.e.:

    <link rel="stylesheet" href="assets/css/style.css">