CodeIgniter: Как включить файл .js в поле зрения? - PullRequest
7 голосов
/ 09 октября 2009

Где и как мне включить файлы .js в представления в CodeIgniter?

Я пробовал это:

<script type="text/javascript" src="system/application/libraries/jquery.js"></script>

Поскольку я полагал, что index.php - это файл, который загружает представления, поэтому я предполагаю, что при каждой загрузке страницы текущий путь к каталогу находится в корневом каталоге, поскольку index.php находится в корневом каталоге. Это правда?

В приведенной выше строке нет, поэтому я делаю что-то не так. У меня есть проект CodeIgniter. Путь такой:

localhost/CodeIgniter/system/application

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

localhost/CodeIgniter/system/application/libraries

когда я хочу загрузить файл jquery.js в представлении, расположенном здесь:

localhost/codeIgniter/system/application/views/till_view.php

Ответы [ 6 ]

14 голосов
/ 20 января 2010

Существует менее известное решение, которое действительно хорошо работает с чистым синтаксисом и гораздо большей переносимостью, чем жестко закодированные URL-адреса или относительные файлы.

<base href="<?=base_url();?>">

<img src="images/logo.gif" alt="Logo" />

Подробнее о том, что, почему, читайте в моей статье " Обработка активов в CodeIgniter с тегом BASE ".

6 голосов
/ 09 октября 2009

Это не файл index.php, который является представлением. Представление - это то, что загружается в ваш контроллер, когда вы делаете

$this->load->view("viewname");

Файл " viewname.php " может включать файлы .js , как обычные .html (или .php ) файл будет:

<script  src="/url/to/javascript.js" />

Возможно, вы захотите создать представление по умолчанию или представление «заголовка», которое включает в себя некоторые или все (общие) .js файлы для вашего проекта.

-CF

6 голосов
/ 09 октября 2009

Первый вопрос:

Зависит от того, используете ли вы абсолютные или относительные URL.

Абсолютные URL-адреса идут из корня вашего домена. Относительные URL-адреса загружаются относительно текущего каталога (включая сегменты URL-адресов).

Второй вопрос: Лучше всего использовать абсолютный URL. Из-за симпатичных URL-адресов не рекомендуется использовать относительные URL-адреса.

Самый простой способ - использовать url helper , а затем использовать функцию url сайта, например:

$this->load->helper('url');
echo site_url('system/application/libraries/jquery.js');

Ps. Я рекомендую размещать такие вещи, как javascript и изображения, за пределами каталога CodeIgniter.

4 голосов
/ 09 октября 2009

base_url() у меня всегда работает нормально

0 голосов
/ 16 марта 2014

Вот решение, специально относящееся к ФП, которое, я думаю, никто не предоставил.

<script type="text/javascript" src="<?= base_url() ?>libraries/jquery.js"></script>

Итак, base_url() предоставит путь непосредственно к корню вашего сайта.

0 голосов
/ 13 февраля 2013

Самый простой способ получить прямой доступ к файлу:

<img src="http://localhost/ci/you_dir/your_img/your_image.png" />

, где ci - кодовый указатель.

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