【问题标题】:Code Igniter : base_url() at CSS file doesn't workCodeigniter:CSS 文件中的 base_url() 不起作用
【发布时间】:2013-02-14 06:38:55
【问题描述】:

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

成功了,谢谢大家...

【问题讨论】:

  • 您的短标签启用了吗?你能发布你的链接标签在浏览器的视图源中输出时的样子吗?而且你知道,你不能在 css 文件中发布 PHP 标签。
  • 你能在.css文件中使用php吗?
  • 没有。仅当文件是 php 生成的但不是。

标签: css codeigniter image base-url


【解决方案1】:

你应该这样做

文件结构

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

【讨论】:

    【解决方案2】:

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

    打开页面并添加

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

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

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

    要修复无法从styles.php 访问的base_url(),请设置一个会话变量来保留它。您可以将其保存在您的 index.php 的 codeignitor 上。

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

    现在,在 styles.php 中使用它。

    background: url("<?php echo $_SESSION['base_url']; ?>"/../../some.jpg");
    

    【讨论】:

    • 我使用 php 中的 include 函数或 ??
    • @EsgiDendHigherCloud,是这样的
    • @EsgiDendHigherCloud,但请确保 base_url() 可以从 styles.php 中访问
    • 为什么会这样?那styles.php(即使重命名为php)不是codeigniter PHP代码的一部分?请解释一下。 ://
    • 我尝试了 ,但是 base_url() 没有'不起作用...但我尝试在视图中制作 php 文件并使用功能调用它,它的工作...谢谢男人...
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      这绝对会有效!。

      【讨论】:

        【解决方案5】:

        如果您的文件夹结构是:

        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;
        

        【讨论】:

          【解决方案6】:

          试试这个..

          替换这个:

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

          【讨论】:

            【解决方案7】:

            或者你可以写...

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

            【讨论】:

              猜你喜欢
              • 2017-06-13
              • 1970-01-01
              • 1970-01-01
              • 2013-08-21
              • 2013-05-16
              • 1970-01-01
              • 1970-01-01
              • 2016-04-11
              • 1970-01-01
              相关资源
              最近更新 更多