Просто подумал, что я добавлю некоторые важные для меня вещи.
Как вы уже упоминали, если вам когда-нибудь понадобится установить Codeigniter в подкаталог, /
ведущий слеш, конечно, не будет работать.Вы должны будете включить имя подкаталога в путь.Лично это очень важно, потому что мы будем устанавливать редизайны или прототипы в подкаталогах.Тем не менее, это может быть полезно (если применимо) для перехода на SSL, если вы еще не позволяете CI автоматически определять базовый URL (по состоянию на версии 2.0.2).
ИзменениеВаша $config['base_url']
не включать полный домен может быть плохой идеей.Вдобавок ко всему, это сломало бы ссылки и ссылки в электронных письмах, отправленных вашим приложением, использующим функцию base_url()
, и в целом может привести к неожиданным результатам.
Почтикаждый HTML-тег, в котором вам нужно использовать базовый URL, например <link>
<img>
и <a>
, покрывается функцией Codeigniter.(link_tag()
, anchor()
, img()
).Они позаботятся о базовом URL для вас.(Почему они пропустили <script>
- вне меня ...)
Однако я согласен - использование полного базового URL добавляет много ненужного веса страницы, особенно в вашей навигации.Вот что я делаю, чтобы получить путь (в случае установки подкаталога):
// constants.php
$base_uri = $_SERVER['SCRIPT_NAME']; // Always index.php (bootstrap), right?
$base_uri = str_replace('index.php', '', $base_uri);
define('BASE_URI', $base_uri);
Вы можете изменить это на функцию или элемент конфигурации или что угодно, я предпочитаю константу.Затем вы можете использовать:
<script src="<?php echo BASE_URI; ?>js/functions.js"></script>
Обычно это будет скучный способ сказать /
, но он решает проблему подкаталога.
Это может показаться пустой тратойвремя, но когда у вас много установок, использующих одну и ту же кодовую базу, лучше меньше конфигурации.