CodeIgniter — Загрузка CSS

Я разрабатываю собственный API для веб-решения и использую шаблон проектирования MVC. У меня есть папка с модулями, чтобы я мог вставлять и вынимать модули, а также работать с разделами, не нарушая работающий протестированный код. Моя единственная проблема сейчас заключается в том, что я хочу загружать CSS где угодно и чтобы мое приложение правильно импортировало файл css в теге head. Я знаю, что CodeIgniter делает это, но я не уверен, как это сделать.

Используя PHP, как мне загрузить файл CSS в любом месте, а затем правильно импортировать код css в тегах заголовка, как это делает CodeIgniter?

Заранее спасибо.


person Torez    schedule 29.06.2009    source источник


Ответы (8)


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

Поэтому в этом случае я рекомендую вам создать одно представление заголовка, в котором вы загружаете все файлы css и js.

пример:

<html>
<head>
    <meta http-equiv="content-type" content="text/html;charset=UTF-8">
    <link rel="stylesheet" href="<?php echo base_url();?>css/moorainbow.css" type="text/css" media="screen"/>
    </head>
    <body>

И назовите это так:

$this->load->view('header');
$this->load->view('view1');
$this->load->view('view2');

Таким образом, вы можете управлять файлами (css+js+etc), которые вы загружаете, только в одном файле.

Regrads,
Педро
@pcamacho

person Pedro    schedule 30.06.2009
comment
Можно ли как-то загрузить представление «верхний колонтитул»/«нижний колонтитул» без вызова $this->load->view('header') или $this->load->view('footer') ?‹br› может быть, это похоже на шаблон... - person Praditha; 22.12.2011
comment
замечательный! это был ответ на невозможность найти css при загрузке страницы php - person sys_debug; 18.09.2012
comment
Вместо этого я бы использовал base_url('css/moorainbow.css');, потому что в противном случае вы можете получить дублированные части вашего URL. - person Alex W; 03.04.2014

Ваш вопрос мне немного непонятен, но я сделаю все возможное, чтобы помочь. Вам просто интересно, как включить файл CSS в свои представления? Если это так, просто используйте следующее:

<style> @import url('/css/styles.css'); </style>

Если ваша папка CSS находится в корне вашего проекта CodeIgniter, вы можете сделать что-то подобное, используя функцию base_url() CodeIgniter:

<style> @import url('<?=base_url()?>/css/styles.css'); </style>

Это гарантирует, что ваши страницы останутся переносимыми и будут иметь правильный абсолютный URL. Надеюсь это поможет! Если нет, попробуйте быть более конкретным в своем вопросе.

person Colin Brock    schedule 29.06.2009
comment
У меня это отлично сработало: ‹style› @import url(‹?=base_url('public/css/style.css') ?›); ‹/style› мои ссылки типа ‹link rel=stylesheet type=text/css media=screen src='‹?=base_url('public/css/style.css') ?›'/› работают, когда вы просматриваете источник, который они ссылаются на правильный файл, но они не применяют этот CSS. Мне действительно нужно увидеть некоторые журналы, но мой общий хостинг не позволит мне :( - person Sam; 13.05.2013

Используйте абсолютный

<link rel="stylesheet" type="text/css" href="http://example.com/style/css">

или корневой относительный URI.

<link rel="stylesheet" type="text/css" href="/style/css">
person Quentin    schedule 29.06.2009

также убедитесь, что вы не перенаправляете URL-адрес в файле .htaccess, разрешите css

файл .htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

Также вот что я добавил в свой шаблон заголовка

$this->load->helper("url");
echo link_tag(base_url().'css/styles.css');
person mc.    schedule 28.08.2012

вы можете сделать то же самое, что и я, в вашем файле просмотра сделайте следующее

<link rel="stylesheet" href="{pathToApp}/styles/main.css" type="text/css" media="screen" />

(после создания папки стилей в каталоге приложения), затем в вашем контроллере передайте это:

$path = '../system/application';

в массив и отправьте массив в качестве второго параметра, если вы используете load->view для загрузки вашего представления, вам нужно изменить {pathToApp} на $array['path'] (измените $array на то, что вы назвали). Если вы используете встроенную систему шаблонов CodeIgniter, то все готово. По крайней мере, таким образом вам не нужно будет менять абсолютный URL-адрес при переносе вашего сайта.

person Marc Towler    schedule 29.06.2009

Я понял одну важную вещь: RewriteCond в .htaccess относится к ПАПКАМ, а не к ТИПАМ ФАЙЛОВ. Другими словами, добавление |css| не работает, если ваши таблицы стилей не находятся в папке /css/. Перечислите фактические папки, поэтому |styles| или |scripts| или что-то еще. ТОГДА и только тогда появится использование "<?=base_url()?>styles/style.css" (например). Мне потребовалось около 2 дней, чтобы понять это, поэтому я надеюсь, что чтение этого сэкономит кому-то волосы и высокое кровяное давление.

person Dane Calderon    schedule 23.10.2012

Сначала вы создаете функцию Controller и загружаете помощник HTML для вызова css в Codeigniter.

образец кода

<?php 
class Home extends CI_Controller{

    public function helper(){
        $this->load->helper('html');    
        $this->load->helper('url'); 
        $this->load->view('index');

    }
}
?>

Затем вызвать файл css, используя ключевое слово link_tag. Что-то подобное в файле index.php в

<html>
<head>
    <title></title>
     <?php echo link_tag('css/moorainbow.css');?>
</head>
<body>
<?php 
.....
?>
</body>
</html>

Здесь css/ — это папка, содержащая файл moorainbow.css.

person NIMISHAN    schedule 21.07.2016

сделай это

<link rel="stylesheet" type="text/css" href="./css/style.css">
<link rel="stylesheet" type="text/css" href="../css/style.css">

но сначала создайте папку css в корневом каталоге и поместите туда style.css.

person surafel    schedule 30.12.2013