Codeigniter эхом вместо localhost

Я использую CodeIgniter 3 как веб-платформу и пытаюсь импортировать семантико-UI CSS на свою страницу. Я делаю это, используя метод base_url() CodeIgniter в base_url() href для импорта CSS.

Тем не менее, semantic.css сам импортирует некоторые другие шрифты, присутствующие на моем сервере, которые затем не могут загружаться из-за политики совместного использования ресурсов Cross-Origin. Это сообщение об ошибке хром дает мне:

Шрифт из источника « http://[::1] » был заблокирован от загрузки по политике совместного использования ресурсов Cross-Origin: заголовок «Access-Control-Allow-Origin» присутствует на запрошенном ресурсе. Происхождение ' http: // localhost ', следовательно, не допускается.

Это связано с тем, что base_url () перекликается с доменом [::1] а не с localhost, как я набрал в браузере.

По какой-то причине мне кажется, что хром (а также Edge) не рассматривает [::1] и localhost как один и тот же хост, или, может быть, я просто тупой. Однако я знаю, что если я изменю путь к основному файлу semantic.css и локальному хосту жесткого кода, он работает, и он также работает, если вместо запроса моей страницы с использованием localhost я использую [::1]

Я сделал другие проекты, очень похожие на это, и никогда не появлялся этот "[::1]" . Что именно вызывает php для эха такого пути?

Related of "Codeigniter эхом вместо localhost"

Его из-за вашего base_url пуст.

В config / config.php

 $config['base_url'] = 'http://localhost/project_name'; 

Чтобы использовать base_url (); вы должны сначала загрузить URL-адрес. Это можно сделать либо в application / config / autoload.php (на линии 67 или около нее): или вы можете вручную использовать

 $this->load->helper('url'); 

чем установить

 $config['base_url'] = 'http://localhost/your_site_url'; 

я думаю, это поможет вам

Более точный и динамичный способ

 $root = "http://".$_SERVER['HTTP_HOST']; $root .= dirname($_SERVER['SCRIPT_NAME']); $config['base_url'] = $root; 

Хотя вы все еще можете использовать порт.

Это то, что вам нужно изменить в config / config.php, оно работает правильно в «localhost», а также на вашем «сервере»:

 $config['base_url'] = "http://".$_SERVER['SERVER_NAME']; $config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']); if(!defined('DOCUMENT_ROOT')) define('DOCUMENT_ROOT',str_replace('application/config','',substr(__FILE__, 0, strrpos(__FILE__, '/')))); $config['base_path'] = constant("DOCUMENT_ROOT"); $config['js_url'] = $config['base_url'].'js/'; $config['css_url'] = $config['base_url'].'css/'; $config['image_url'] = $config['base_url'].'img/'; // Host resolution for cross origin requests if(ENVIRONMENT == 'production') { $config['host'] = 'www.<domain_name>.com'; } else { $config['host'] = 'localhost'; }