2009-10-09 2 views
7

Где и как включить .js-файлы в Views в CodeIgniter?CodeIgniter: Как включить файл .js в поле зрения?

Я попытался это:

<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

Это не «index.php» файл, который является вид. Зрения все, что загружается в контроллере, когда вы делаете

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

Файл «viewname.php» может затем включать в себя .js файлы, так же, как обычный .html (или файл) .php бы:

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

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

-CF

+11

Вам не нужно подписывать свое имя, когда у вас уже есть подпись вашего аватара. – random

+0

Есть ли способ добавить его с контроллера? У меня есть унаследованное приложение codeigniter, и он использует заголовочный файл, который разделяется группой внутренних, институциональных сайтов. Я знаю, что могу легко сказать «» (некоторым браузерам не нравится сама закрывающая версия выше). Во всяком случае, это не w3c-совместимость, чтобы добавлять CSS везде, кроме заголовка, и я бы предпочел включить мой JS в заголовок. С web2py я могу сделать response.append(URL('static','file.css')). Другие приложения CI в нашем учреждении Я видел что-то вроде this->addJS("file.js");, есть ли стандарт CI? – Kasapo

+0

[** script_tag() для CodeIgniter **] (https://github.com/JDMcKinstry/CIScriptTag) – SpYk3HH

6

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

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

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

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

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

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

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

4

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

14

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

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

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

Узнайте больше о том, как, что, почему на моей статье "Asset handling in CodeIgniter with the BASE tag".

+0

Спасибо. Это действительно изменило мой мир :) – unni

+0

Это сработало для меня, но я хочу, чтобы ваша ссылка работала. –

-1

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

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

где CI для CodeIgniter.

0

Вот решение, специально относящееся к OP, которое я не думал, что кто-либо еще предоставил.

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

Так, base_url() обеспечит путь прямой к корню вашего сайта.

Смежные вопросы