Я новичок в обучении MVC и после поиска в базовых материалах нашел несколько мнений по этому вопросу / теме, но у каждого есть разные состояния и инструкции …
Кто-нибудь знает, что лучше всего разместить в файлах активов (js / css / img) в Codeigniter?
Я обнаружил, что некоторые ребята заявили, что они вставляют в папку просмотра, кто-то из webroot (создавая папку с ресурсами), кто-то внутри папки приложения и т. Д., Поэтому я действительно запутался. Действительно ли это зависит от пользователя, который разрабатывает приложение (так что все его по-разному) или для этого существует одно основное правило «следовать правилу»?
Может ли какой-либо эксперт в Codeigniter правильно ответить и объяснить, что лучше всего включить в это, и почему это делается так?
В какой-то мере это доходит до вкуса, но мое скромное предложение состоит в том, чтобы использовать базовый шаблон бутстрапа, за которым следуют многие рамки, а не только codeigniter. Посмотрите, как вы могли бы разместить свой веб-сайт на основе темы ( https://github.com/twbs/bootstrap ), например.
Я не претендую на то, чтобы быть экспертом, но я предлагаю что-то очень простое и понятное для команды:
/ /css /js /application /bower_components ...
При работе со страницей я не хочу думать о загрузке различных библиотек и содержимого страницы, просто хочу просто работать со страницей. Чтобы сделать это, я разделил содержимое, чтобы загрузить его со следующими вызовами:
$this->load->view('site/header'); //Load the header and all the appropriate libs $this->load->view('/users/edit', array(' 'record' => $this->User->get($userid); //Work with the actual page ')); $this->load->view('/site/footer'); //Close all the tags
Как правило, я кладу библиотеки в корневой каталог, а затем загружаю их в виде, используя абсолютные пути:
<html> .... <head> <script src="/js/bootstrap.min.js"></script> <link href="/css/bootstrap.css" rel="stylesheet"> </head> ... <body> <navbar> ... </navbar> <div id="content">
</content> ... closing tags </html>
См. Пустую настройку репо с бесплатной темой здесь: https://github.com/DesertLynx/blank_CI
Обычно, когда я запускаю новый проект CodeIgniter, я создаю папку с именем public
а затем перемещаю туда файл index.php. Делая это, это означает, что приложения и системные папки не находятся на одном уровне.
В моем файле application / config / config.php я добавил base_url
$config['base_url'] = 'http://exmaple.com/codeigniter/public/";
Внутри public
папки я создаю папки с именем js
, css
и images
. Поэтому моя структура выглядит так:
-- application -- system -- public -- css -- js -- images -- index.php
Затем в моих шаблонах я могу просто включить их, выполнив
<link rel="stylesheet" href="<?php echo base_url() ?>css/main.css" /> <script type="text/javascript" src="<?php echo base_url() ?>js/main.js"></script>
Вы определенно не должны размещать общедоступные файлы (таблицы стилей, изображения и т. Д.) В приложениях или системных папках
Я добавил их в файл с именем inc
в том же каталоге, что и application
, system
и user_guide
(хотя я удалил user_guide
как только он поднялся на сервер).
Убедитесь, что вы установили base_url
чтобы упростить его (и автозагрузите загрузчик url
!).
Затем, когда я его называю, я использую <?=base_url();?>inc/css/styles.css
<link rel="stylesheet" href="<?=base_url();?>inc/css/styles.css
или
<link rel="stylesheet" href="<?php echo base_url(); ?>inc/css/styles.css
Мой шаблон будет выглядеть так:
--application --system --inc -- css -- style.css -- js -- scripts.ks -- images -- logo.png
одна вещь, которую мне нравится делать, кроме ответов выше, заключается в использовании функции «helper» для загрузки js, css. таким образом, если вы когда-либо меняете местоположение своего статического контента, вам нужно только изменить его в одном месте в вашем коде.
function css($filename) { return '<link rel="stylesheet" type="text/css" href="' . config_item('base_url') . 'public/' . $filename . '.css">'; } function js($filename) { return '<script type="text/javascript" src="' . config_item('base_url') . 'public/' . $filename . '.js "></script>'; }