Как правильно подцепить css?

Вопросы об установке, настройке и работе самого фреймворка

Как правильно подцепить css?

Сообщение del » 17 июн 2008, 11:44

в контроллере у меня
Код: Выделить всё
$this->load->view('header',$data); 

а в файле header.php
Код: Выделить всё
<link rel="stylesheet" href="css/test.css" type="text/css" media="screen" /> 

1) куда лучше поместить папку css, сейчас я её положил просто в корень localhost/css
2) как правильно прописать ссылку href="css/test.css" ?
del
 
Сообщения: 6
Зарегистрирован: 17 июн 2008, 09:25

Re: Как правильно подцепить css?

Сообщение Sam Dark » 17 июн 2008, 12:28

Код: Выделить всё
<link rel="stylesheet" href="/css/test.css" type="text/css"/> 


CSS соответственно в папке /css/
Аватара пользователя
Sam Dark
 
Сообщения: 824
Зарегистрирован: 16 апр 2008, 19:23
Откуда: Воронеж

Re: Как правильно подцепить css?

Сообщение del » 17 июн 2008, 14:28

test.css нормально подгружается если адрес без сегментов
    http://localhost/CodeIgniter/index.php
но если в адресе появляются сегменты
    http://localhost/CodeIgniter/index.php/class/function/ID
то test.css как бы "проскальзывает".

кроме того, если я размещаю папку css на уровень ниже в папке system, то
Код: Выделить всё
<link rel="stylesheet" href="system/css/test.css" type="text/css" /> 

тоже не работает
Последний раз редактировалось del 17 июн 2008, 14:41, всего редактировалось 1 раз.
del
 
Сообщения: 6
Зарегистрирован: 17 июн 2008, 09:25

Re: Как правильно подцепить css?

Сообщение Sam Dark » 17 июн 2008, 14:41

Нужен абсолютный адрес, как я и написал выше, т.е. начинающийся с /.
Аватара пользователя
Sam Dark
 
Сообщения: 824
Зарегистрирован: 16 апр 2008, 19:23
Откуда: Воронеж

Re: Как правильно подцепить css?

Сообщение del » 17 июн 2008, 14:50

так работает:
href="http://localhost/CodeIgniter/css/test.css" работает
del
 
Сообщения: 6
Зарегистрирован: 17 июн 2008, 09:25

Re: Как правильно подцепить css?

Сообщение Sam Dark » 17 июн 2008, 17:05

href="/CodeIgniter/css/test.css" тоже будет работать
Аватара пользователя
Sam Dark
 
Сообщения: 824
Зарегистрирован: 16 апр 2008, 19:23
Откуда: Воронеж

Re: Как правильно подцепить css?

Сообщение aka_SKIff » 18 июн 2008, 13:43

Столкнулся с такой проблемой.
Есть два виртуальных хоста. Один в апачной папке (htdocs/), а второй (на котором, собственно и тестирую CI) совершенно в другом месте (projects/mvc).
Если кидаю CSS'ы, JS'ы и тд в htdocs/css и указываю путь типа http://localhost/css/site.css, то всё нормально отрисовывается. Но мне нужно, чтобы вся статика лежала там же, где и CI, то есть в projects/mvc. Куда кинуть папку с CSS, JS и прочей статикой? И как их правильно подцепить в отображении?
aka_SKIff
 
Сообщения: 7
Зарегистрирован: 18 июн 2008, 13:40

Re: Как правильно подцепить css?

Сообщение Sam Dark » 18 июн 2008, 17:19

CSS можно подцепить только из папки, которая видна снаружи, т.е. из webroot. Либо придётся положить в webroot скриптик такого вида:
Код: Выделить всё
<?php
  
echo file_get_contents('путь_к_css.css');
 
Аватара пользователя
Sam Dark
 
Сообщения: 824
Зарегистрирован: 16 апр 2008, 19:23
Откуда: Воронеж

Re: Как правильно подцепить css?

Сообщение Ladygin » 18 июн 2008, 22:24

А не проще ли сделать так:
В файле config.php прописать
Код: Выделить всё
$config['base_url']    = "http://".$_SERVER['HTTP_HOST']."/"

И использовать
Код: Выделить всё

$this
->data['base_url'] = base_url();
$this->parser->parse('page'$this->data);
 

А в шаблоне использовать {base_url} для отображения адреса сайта где это потребуется. Так же можно отправить такие постоянные вещи в автозагрузку и непарится о них больше.
Пример:
Код: Выделить всё
<link rel="stylesheet" href="{base_url}css/test.css" type="text/css" /> 
Coolweb.su
Здесь я слушаю музыку слушать mp3
Аватара пользователя
Ladygin
 
Сообщения: 72
Зарегистрирован: 30 май 2008, 06:13
Откуда: Псков

Re: Как правильно подцепить css?

Сообщение Sam Dark » 19 июн 2008, 10:51

Можно и так:
Код: Выделить всё
<link rel="stylesheet" href="/css/test.css" type="text/css" /> 


Эффект будет тот же.
Аватара пользователя
Sam Dark
 
Сообщения: 824
Зарегистрирован: 16 апр 2008, 19:23
Откуда: Воронеж

Re: Как правильно подцепить css?

Сообщение aka_SKIff » 19 июн 2008, 13:14

На самом деле всё оказалось куда проще :) По умолчанию href в CSS считается от DOCUMENT_ROOT.
DOCUMENT_ROOT для виртуального серва у меня был прописан правильно, а вот в .htaccess стояло перенаправление любых запросов к index.php.
После того, как в список исключений добавил css, images, js, то сразу вся статика стала нормально цепляться из корня виртуального сервера.
aka_SKIff
 
Сообщения: 7
Зарегистрирован: 18 июн 2008, 13:40

Re: Как правильно подцепить css?

Сообщение del » 19 июн 2008, 23:16

Я тут тоже пробовал, и в итоге у меня получилось два варианта - первый:
Код: Выделить всё
<style type='text/css'><?php $this->file(BASEPATH.'css/test.css'); ?></style>

второй вариант:
переменная задана где-нибудь... не знаю где... пока поместил в модель вместе с другими переменными
Код: Выделить всё
$data['title'] = 'Тестовая страница';
$data['my_css'] = 'css/test.css' 

подключил хелпер
Код: Выделить всё
$autoload['helper'] = array('url');  

в итоге
Код: Выделить всё
<link rel="stylesheet" href="<? echo site_url($my_css?>" type="text/css" />

т.е. переносимость вроде как получше...
del
 
Сообщения: 6
Зарегистрирован: 17 июн 2008, 09:25

Re: Как правильно подцепить css?

Сообщение puritania » 21 июн 2008, 21:10

У меня сделано так:
    CSS лежит от корневой папке в папке css
    В контроллере поключен хелпер "html"
    В шаблоне: <?=link_tag('css/dating.css');?>
puritania
 
Сообщения: 3
Зарегистрирован: 21 июн 2008, 21:03

Re: Как правильно подцепить css?

Сообщение AlexeyS55 » 27 июн 2008, 11:48

Похожий вопрос: хочу сделать возможность использовать скины, несколько. Отсюда - куда их лучше разместить и как указывать пути попроще? Или во views папку templates или в корен или еще куда. И как пути указывать лучше?
AlexeyS55
 
Сообщения: 34
Зарегистрирован: 04 июн 2008, 21:44

Re: Как правильно подцепить css?

Сообщение Sam Dark » 27 июн 2008, 12:10

Что подразумевается под скинами? CSS? Картинки? Сама разметка?
Аватара пользователя
Sam Dark
 
Сообщения: 824
Зарегистрирован: 16 апр 2008, 19:23
Откуда: Воронеж

Re: Как правильно подцепить css?

Сообщение AlexeyS55 » 27 июн 2008, 12:27

Sam Dark писал(а):Что подразумевается под скинами? CSS? Картинки? Сама разметка?

Все перечисленное. Скины могут кардинально отличаться и поэтому иметь свои стили, картинки, разметку. Разумеется некоторые части могут быть одинаковыми, но. Так же хотелось бы все относящееся к одному стилю хранить в одной папке+подпапки css, images и т.д.
Кроме того мне кажется хорошо бы поместить их в /templates/... что бы не светить поти до view и т.д. Но в таком случае у меня parser не находит указанные в том каталоге вьюхи, в пути указываю например:
Код: Выделить всё
$this->parser->parse('/templates/'.$template.'header', $data, TRUE);


он говорит что /templates/black/header.php не найдет. т.е. load->view ищет только во view?
AlexeyS55
 
Сообщения: 34
Зарегистрирован: 04 июн 2008, 21:44

Re: Как правильно подцепить css?

Сообщение Sam Dark » 27 июн 2008, 13:28

Без расширения загрузчика load->view ищет только во view.
Аватара пользователя
Sam Dark
 
Сообщения: 824
Зарегистрирован: 16 апр 2008, 19:23
Откуда: Воронеж

Re: Как правильно подцепить css?

Сообщение AlexeyS55 » 27 июн 2008, 15:07

Sam Dark писал(а):Без расширения загрузчика load->view ищет только во view.

Да, я понял. Обошелся без этого, во views все засадил. Только получается пути засвечиваются :(
AlexeyS55
 
Сообщения: 34
Зарегистрирован: 04 июн 2008, 21:44

Re: Как правильно подцепить css?

Сообщение wave » 29 июн 2008, 22:18

Совет с хабра, если ещё актуально: Asset Helper - С помощью этой штуки чертовски удобно управлять материалами (ассетами) сайта, которые представляют из себя статические файлы, не связанные с фреймворком: CSS-стили, JavaScript-файлы, картинки.
Asset Helper помогает генерировать нужный код для вставки материалов в HTML-документ.
Естественно, все функции хелпера можно (и нужно) использовать в представлениях (view).
wave
 
Сообщения: 48
Зарегистрирован: 04 фев 2009, 00:32

Re: Как правильно подцепить css?

Сообщение Lark » 06 мар 2010, 03:59

Всем привет!

Столкнулся со следующей проблемой, вчера писал разметку все работало, после того как комп простоял ночь выключенным на следующий день перестал подключаться css, подключаю следующим образом:

<link rel="stylesheet" type="text/css" href="http://www.ns.ru/system/application/views/css/style.css"/>

еще вроде до того как начал использовать .htaccess (использую для удаления index.php из строки запроса) css нормально подключался, хотя я его создал только вчера и с ним все работало, вот содержимое файла:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Lark
 
Сообщения: 3
Зарегистрирован: 06 мар 2010, 03:47

След.

Вернуться в Общие вопросы по фреймворку

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0