2016-11-07 2 views
-1
$config['base_url'] = 'localhost/project'; 

<link href="<?= base_url(); ?>/css/bootstrap.min.css" rel="stylesheet"> 

Изменил бы ошибку, и он не будет загружать мой css на мой взгляд из-за двойного '/'.Codeigniter URL и base_url() confusion

Это источник данных для просмотра в браузере.

<link href="localhost/project//css/bootstrap.min.css" rel="stylesheet"> 

И css не загружается. Когда я пытаюсь использовать источник страницы и следую ссылке, это приводит к ошибке 404.

Что меня смущает, так это то, что когда я добавляю протокол на свой base_url в файле конфигурации.

<link href="http://localhost/project//css/bootstrap.min.css" rel="stylesheet"> 

По неизвестным причинам, выше URL, кажется, указывает на CSS и он загружает на мой взгляд, даже если она все еще имеет двойной «/» на URL между «проект» и «CSS». Кроме того, даже если я удалю '/' перед 'css' в представлении, он будет загружаться, если я добавлю протокол на свой базовый url, хотя без протокола даже без двойного '/' он все равно выиграет ' t загрузить css.

<link href="http://localhost/project/css/bootstrap.min.css" rel="stylesheet"> 

У меня также есть некоторые вопросы,

На моей конфигурации базового URL выше, я никогда не Погружает «/» в конце, так почему это добавьте «/», когда я использую функцию base_url на мой взгляд. Почему так?

Мой второй вопрос, что '/' на моем url.

<link href="css/bootstrap.min.css" rel="stylesheet"> 

<link href="/css/shop-homepage.css" rel="stylesheet"> 

Первое звено при щелчке по ссылке на вид на исходный текст моего браузера, он все еще имеет контроллер в ссылке.

http://localhost/project/Pages/css/bootstrap.min.css 

Хотя, если я добавить «/» перед «CSS» он удаляет «проект» и «Страницы» в URL.

http://localhost/css/shop-homepage.css 

я мог бы решить эту проблему просто, что я не знаю, почему они происходят так что даже если я могу получить CSS для загрузки я не чувствую себя хорошо, потому что я не знаю, почему.

ответ

0

В идеале base_url в конфигурации должен быть как:

$config['base_url'] = "http://www.example.com/"; 

и по вашему мнению, вы можете добавить имя папки и имя файла, который нужно включить.

<link href="<?= base_url(); ?>css/bootstrap.min.css" rel="stylesheet"> 

Таким образом, не будет никаких неурядицы или двойной '/'

Plus предпочитают использовать это:

<link href="<?php echo base_url(); ?>css/bootstrap.min.css" rel="stylesheet"> 
1

base_url является частью URL Helper.

Проблема заключается в нашем конфигурационном файле, говорится в файле конфигурации, что:

/* 
|-------------------------------------------------------------------------- 
| Base Site URL 
|-------------------------------------------------------------------------- 
| 
| URL to your CodeIgniter root. Typically this will be your base URL, 
| WITH a trailing slash: 
| 
| http://example.com/ 
| 
| If this is not set then CodeIgniter will guess the protocol, domain and 
| path to your installation. 
| 
*/ 
$config['base_url'] = 'http://localhost/site/'; 

Вы должны добавили косую черту, и так как вы не сделали, то функция base_url() добавляет его автоматически.

Лучшее использование является предоставление местоположения файла в качестве параметра, от

<link href="<?= base_url("css/bootstrap.min.css"); ?>" rel="stylesheet"> 
0

Вы просто не можете создать URL с именем хоста:

localhost/project 

В противном случае, он бы невозможно сказать, имеете ли вы в виду доменное имя или местоположение на вашем сервере.

Вам нужен полный префикс протокола:

http://localhost/project 

... или, если уже в контексте HTTP, по крайней мере, двойной слеш:

//localhost/project 

Браузеры часто предпочитают, чтобы скрыть фактический URL (таким образом, широко распространенная путаница), но базовое значение работает точно так же.

+0

По какой-то причине chrome скрывает 'http: //', но показывает 'https: //' в зеленом цвете с блокировкой с ним. – Phiter