Как связать ресурсы (изображения, таблицы стилей и т. Д.) В Views для CodeIgniter 2.1? - PullRequest
2 голосов
/ 26 ноября 2011

Я использую CodeIgniter Версия 2.1 и пытаюсь связать активы, такие как изображения, таблицы стилей, файлы javascript и т. Д., В моих представлениях с помощью header.php:

<link href="<?php base_url();?>css/style.css" rel="stylesheet" />

мой код контроллера, вызывает представление:

<?php
class Main extends CI_Controller{
    public function index() {
        $this->load->view('header');
}
  • Файл вида, из которого я пытаюсь загрузить ресурс, находится ../application/views/header.php.
  • файл css загружен: ../application/views/css/style.css

это не работает. Я получаю 404 - Страница не найдена error.then, я попытался переместить css/style.css вне каталога ../application в webroot. К моему удивлению, наличие ресурсов в webroot (за пределами ../application/views), кажется, работает хорошо.

Теперь, Мой вопрос

  1. Правильно ли использовать наши ресурсы непосредственно в webroot, вне каталога ../application? Если ДА / НЕТ, то почему?
  2. Если наличие ресурсов непосредственно в webroot - хорошая идея, то мне также следует переместить каталог ../application/views в webroot? Как?

PS: Я новичок в среде CodeIgniter, поэтому не знаю о лучших практиках

Ответы [ 3 ]

7 голосов
/ 07 августа 2012

Если вы видите это , раздел, в котором .htaccess используется для удаления index.php из URL, который имеет условие перезаписи:

 RewriteCond $1 !^(index\.php|images|robots\.txt)

В этой строке images - это папка, которая будет игнорироваться при переписывании модов. Таким образом, вы можете заменить его активами, поместить туда все свои файлы с прямым связыванием и с радостью использовать их.

 RewriteCond $1 !^(index\.php|assets|robots\.txt)

РЕДАКТИРОВАТЬ: мой плохой, не видел дату, когда был задан вопрос. тем не менее, кому-то должно быть полезно.

2 голосов
/ 26 ноября 2011

Лучше всего поместить свои активы в папку webroot.Когда запрашивается сборка с сервера (в зависимости от ваших настроек), он запускается из корневого каталога и работает в обратном направлении.

http://yoursite.com/application/views/css/mystyles.css

если он находится в корневом каталоге, вам нужно только перейти оттуда

http://yoursite.com/css/mystyles.css

Хотя, возможно, стоит поместить их все в папку (/ assets), чтобы они содержались, а также возможность написать более эффективное правило перезаписи (если вы пытаетесьудалите index.php из URL), чтобы игнорировать одну папку вместо всех отдельных папок (/ css, / js и т. д.)

Что касается папки views, то лучше оставить ее в *В папке 1011 * в виде CodeIgniter есть встроенный загрузчик, который автоматически проверяет /application/views для файла представления при использовании кода $this->load->view('myview')

Хотя есть способ переместить папку представлений, если вы новичок в CIвероятно, лучше оставить его там пока.

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

Для связи css вы можете сделать что-то вроде:

echo link_tag('css/mystyles.css');

Проверьте это для ref: http://codeigniter.com/user_guide/helpers/html_helper.html

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