Codeigniter - Включите JavaScript, который находится внутри папки приложения / библиотеки (тег script) - PullRequest
0 голосов
/ 20 ноября 2011

Я не могу найти решение следующей проблемы.Допустим, у меня есть файл библиотеки (.php), который я поместил в папку библиотеки codeigniter, но с этой библиотекой связан некоторый javascript: у меня есть библиотека «grid.php», и у него есть «grid.js», который идет с ним.И когда я загружаю библиотеку "сетка",

<script src="base_url(). 'application/libraries/grid/grid.js'></script>

отражается на странице, где я использовал сетку.Проблема в том, что файл ".js" получает запрещенный доступ и поэтому не может быть использован.Я не хочу помещать свою сетку в корневой уровень codeigniter, потому что я не смогу загрузить ее с $ this-> load-> library ('grid'), и я не хочу перемещать мои js-файлы вручную в корень изатем включайте их вручную каждый раз, когда я использую сетку, я просто хочу скопировать и вставить папку сетки в каждый проект, который мне нужен, и когда я использую ее, она автоматически включит ссылку js.Помогите мне, пожалуйста:)

Я увидел файл "Deny all" .htaccess, который находится в папках приложений и системных папках, но я не хочу удалять его (если это вызывает проблему): D

1 Ответ

1 голос
/ 20 ноября 2011

Я увидел файл «Deny all» .htaccess, который находится в папках приложения и системы, но я не хочу удалять его (если это вызывает проблему): D

Хорошо, что вы не хотите удалять это, это помогает сохранить ваше приложение (и конфиденциальную информацию, такую ​​как пароли БД) недоступным через http.Однако именно поэтому вы не можете получить доступ к файлам javascript таким образом.

Вы должны укусить пулю.Переместите js-файлы в доступный каталог.

Я не вижу никакой причины, по которой вам приходится выписывать теги вручную, если вы используете PHP - возможно, вы захотите изучить написание или принятие какого-либо шаблонаБиблиотека / asset, которую другие библиотеки могут «зацепить» и динамически добавить js / css в шаблон.

Быстрый пример:

class Template {

    private $js;

    function add_js($src)
    {
        $this->js[] = $src;
    }

    function get_js()
    {
        $out = '';
        foreach ($this->js as $src)
        {
            $out .= '<script src="'.$src.'"></script>';
        }
        return $out;
    }

}
  • Убедитесь, что Grid имеет доступэкземпляр CI.Самый распространенный метод: назначить ссылку на свойство класса Grid в __construct().

    $this->CI =& get_instance();
    
  • Добавить скрипт из вашей библиотеки Grid:

    $this->CI->template->add_js('/path/to/grid.js')
    
  • В вашем HTML-шаблоне позвоните $this->template->get_js(), чтобы напечатать теги

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