Codeigniter:CSS文件中的base_url()不起作用

时间:2013-02-28 06:52:37

标签: css codeigniter image base-url

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"/>

这是工作,谢谢你们......

7 个答案:

答案 0 :(得分:4)

你应该这样做

文件结构

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代码。我在答案中提出的结构肯定会正确使用样式并加载图像。

答案 1 :(得分:2)

从CSS文件中获取base_url()。那样可以解决问题。您不能将PHP代码放在CSS文件中。

答案 2 :(得分:2)

您不需要将php文件设为css。只需将您的图像文件放在“application”文件夹之外,例如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">

这绝对有效![/ p>

答案 3 :(得分:1)

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");

答案 4 :(得分:0)

如果你的文件夹结构是:

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;

答案 5 :(得分:0)

试试这个..

替换它:

<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;
}

注意:如果它不起作用,请尝试使用一个点(。) - &gt;的 ./ IMG / background.png

假设您的文件结构如下:

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

和您的base_url() : " http://localhost/sitename/ "

答案 6 :(得分:0)

或者你可以写......

 <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;
}