Воспламенитель кода: base_url() в файле CSS не работает

base_url() не работает с файлом CSS...

вот мой php:

<link rel="stylesheet" type="text/css" href="<?=base_url()?>css/style.css"/>
<body>
</body>

вот мой css/style.css:

body {
  background:#356aa0 url(<?=base_url()?>img/background.png) repeat-x;
  color:#fff;
}

цвет текста меняется на белый, но изображение не отображается... если я использую URL-адрес (../img/background.png), оно отображается... но когда я открываю URL-адрес localhost/project/index. php/control/function/var1/var2 не отображается...

Решено, всем спасибо... :]

я делаю файл php в папке просмотра следующим образом:

<?php header("content-type: text/css"); ?>

body {
    background:url(<?=base_url()?>img/background.png);
}

и я загружаю файл php, который я только что создал с помощью функции на контроллере, а затем связываю его:

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

Это работа, спасибо, ребята...


person Esgi Dendyanri    schedule 28.02.2013    source источник
comment
Ваши короткие теги включены? Можете ли вы опубликовать, как выглядит ваш тег ссылки при выводе в источнике просмотра в вашем браузере? И вы знаете, вы не можете публиковать теги PHP в файлах css.   -  person Glorious Kale    schedule 28.02.2013
comment
Вы можете использовать php в файле .css?   -  person Jeemusu    schedule 28.02.2013
comment
Нет. Только если файл сгенерирован php, но это не так.   -  person Glorious Kale    schedule 28.02.2013


Ответы (7)


Файл CSS не анализируется как файл PHP. Если вы действительно хотите сделать что-то подобное, переименуйте файл как styles.php.

ОТКРЫТЬ страницу и добавить

header("content-type: text/css");

Это говорит о том, что страница должна рассматриваться как текстовый файл CSS. Затем вы можете просто повторить свой оставшийся CSS, например

echo "
body {
....
....
";

Чтобы исправить base_url(), недоступный из styles.php, установите переменную сеанса, чтобы сохранить это. Вы можете сохранить это на своем index.php кодеигниторе.

$_SESSION['base_url'] = base_url();

Теперь используйте это внутри styles.php.

background: url("<?php echo $_SESSION['base_url']; ?>"/../../some.jpg");
person Starx    schedule 28.02.2013
comment
я использую функцию включения из php или ‹link rel=stylesheet type=text/css href=‹?=base_url()?›css/style.php/›?? - person Esgi Dendyanri; 28.02.2013
comment
@EsgiDendHigherCloud, да вот так - person Starx; 28.02.2013
comment
@EsgiDendHigherCloud, но убедитесь, что base_url() доступен из styles.php - person Starx; 28.02.2013
comment
С чего бы это? Этот файл styles.php (даже если он переименован в php) не является частью PHP-кода codeigniter? Пожалуйста, объясните. :/ - person Glorious Kale; 28.02.2013
comment
я пытаюсь ‹ссылка rel=stylesheet type=text/css href=‹?=base_url()?›css/style.php/›, но base_url() не работает... но я пытаюсь создать файл php по адресу просмотрите и назовите это с помощью funstion, и это работает ... спасибо, чувак ... - person Esgi Dendyanri; 28.02.2013
comment
Попробуйте проверить, включены ли ваши короткие теги? - person Glorious Kale; 28.02.2013

Вы должны сделать это так

Структура ваших файлов

myapp/
    application/
    system/ 
    css/
    img/

И в css напиши это

body {
  background:#356aa0 url(../img/background.png) repeat-x;
  color:#fff;
} 

А теперь назовите это

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

Это стандартный способ сделать это. Также ваш css не является динамическим, поэтому вам не нужно беспокоиться об использовании в нем php-кода. Структура, представленная в ответе, наверняка будет правильно использовать стили и загружать изображения.

person Muhammad Raheel    schedule 28.02.2013

Получите свой base_url() из файла CSS. Это решило бы проблему. Вы не можете поместить код PHP в файл CSS.

person Glorious Kale    schedule 28.02.2013

Вам не нужно делать файл php как css. Просто поместите файл изображений из папки «приложения», например, в assets/img. Затем отредактируйте файл css

.error {
  color: #D8000C;
  background-color: #FFBABA;
  background-image: url('../img/error.png');
  background-size: 20px 20px;
}

вызовите файл css, используя

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

Это будет абсолютно работает чувак!.

person Pirman    schedule 29.06.2015

если ваша структура папок:

YourAppFolder/
    application/
           public/
               css/
               img/
         system/

Затем используйте это в своем представлении:

<link rel="stylesheet" type="text/css" href="<?=base_url()?>public/css/style.css"/>

и в css используйте это для изображения:

background:#356aa0 url(../img/background.png) repeat-x;
person Rahul Chipad    schedule 28.02.2013

Попробуй это..

Замените это:

<link rel="stylesheet" type="text/css" href="<?=base_url()?>css/style.css"/>
<body>
</body>

С этим:

<link rel="stylesheet" type="text/css" href="<?php base_url(CSS/style.css)?>"/>
<body>
</body>

Также замените следующее в css/style.css:

body {
  background:#356aa0 url(<?=base_url()?>img/background.png) repeat-x;
  color:#fff;
}

С этим:

body {
  background:#356aa0 url(../img/background.png) repeat-x;
  color:#fff;
}

NB: если это не работает, попробуйте использовать одну точку (.) -> ./img/background.png

Предполагая, что ваша файловая структура выглядит следующим образом:

-ci
--application
--CSS
---file.css
--img
---background.png
--system
.
.
.

и твой base_url() : " http://localhost/sitename/ "

person user3509249    schedule 08.04.2014

или можно написать...

 <link rel="stylesheet" type="text/css" href="<? echo base_url('your css file from base url') ?>/>

это ваш внешний файл css

    body {
  background:url(<? echo base_url('your image path from base url')?>) repeat-x;
  color:#fff;
}
person Nasim Bahar    schedule 06.10.2014