4

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

辛苦了,谢谢各位...

4

7 回答 7

6

你应该这样做

文件结构

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

于 2013-02-28T07:00:39.143 回答
2

CSS 文件不会被解析为 PHP 文件。如果您真的想做这样的事情,请将您的文件重命名为styles.php

打开页面并添加

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

这告诉页面被视为基于文本的 CSS 文件。然后你可以简单地回显你剩余的 CSS,比如

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

要修复base_url()无法通过styles.php设置会话变量来保持它。您可以将其保存在您index.php的 codeignitor 上。

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

现在,在里面使用这个styles.php

background: url("<?php echo $_SESSION['base_url']; ?>"/../../some.jpg");
于 2013-02-28T06:57:42.647 回答
2

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

于 2013-02-28T06:58:07.240 回答
2

您不需要将 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">

它绝对会起作用,伙计!

于 2015-06-29T15:32:42.403 回答
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;
于 2013-02-28T07:33:32.250 回答
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;
}

注意:如果它不起作用,请尝试使用一个点(.)-> ./img/background.png

假设你的文件结构是这样的:

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

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

于 2014-04-08T03:07:29.073 回答
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;
}
于 2014-10-06T17:21:02.847 回答