I am using CodeIgniter 3 as a web platform and trying to import semantic-UI CSS into my page. I'm doing so by using CodeIgniter's base_url()
method in the href property for the CSS import.
However, semantic.css itself imports some other fonts present on my server, which are then unable to load because of Cross-Origin resource sharing policy. This is the error message chrome gives me:
Font from origin 'http://[::1]
' has been blocked from loading by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.
This is because base_url() echoes the domain has being [::1]
and not localhost as I've typed into the browser.
For some reason, it appears to me that chrome (and also Edge) does not consider [::1]
and localhost as the same host, or maybe I'm just being dumb. What I know though is that if I change the path of the main semantic.css file and hard code localhost into it, it works, and it also works if, instead of requesting my page using localhost, I use [::1]
I've done other projects very similar to this and never had this "[::1]"
appear. What exactly is causing php to echo such a path ?
You need to edit you $config['base_url'] as follows,
File location: codeigniter/application/config/config.php
Use above code to get dynamic url.
This is what you need to alter in config/config.php, it works properly in "localhost" as well as in your "server":
More accurate and dynamic way
Though you can still use port.
Its because of your
base_url
is empty.In config/config.php
In order to use base_url(); you must first have the URL Helper loaded. This can be done either in application/config/autoload.php (on or around line 67): or you can manually using
than set the
i think it will help you