【问题标题】:CodeIgniter - Loading CSSCodeIgniter - 加载 CSS
【发布时间】:2010-11-06 20:09:06
【问题描述】:

我正在为 Web 解决方案开发自定义 API,并且我正在使用 MVC 设计模式。我有一个模块文件夹,这样我就可以换入和换出模块,还可以在不中断工作测试代码的情况下处理部分。我现在唯一的问题是我想在任何地方加载 CSS 并让我的应用程序在 head 标记中正确导入 css 文件。我知道 CodeIgniter 会这样做,但我不确定如何。

使用 PHP,我如何在任何地方加载 CSS 文件,然后让代码像 CodeIgniter 一样在 head 标签中正确导入 css?

提前致谢。

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    使用绝对...

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

    … 或根相对 URI。

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

    【讨论】:

      【解决方案2】:

      您可以像我一样做,在您的视图文件中执行以下操作

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

      (在应用程序目录中创建样式文件夹后) 然后在你的控制器中,传递这个:

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

      放入一个数组并将数组作为第二个参数发送,如果您使用 load->view 来加载您的视图,您需要将 {pathToApp} 更改为 $array['path'] (将 $array 更改为您调用的任何内容它)。如果您使用的是 CodeIgniter 的内置模板系统,那么您已经准备就绪。 至少通过这种方式,您在迁移网站时不需要更改绝对 URL。

      【讨论】:

        【解决方案3】:

        您的问题对我来说有点不清楚,但我会尽力提供帮助。您只是想知道如何在视图中包含 CSS 文件吗?如果是这样,只需使用以下内容:

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

        如果您的 CSS 文件夹位于 CodeIgniter 项目的根目录,您可以使用 CodeIgniter 的 base_url() 函数执行以下操作:

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

        它将确保您的网页保持便携性并具有正确的绝对 URL。希望这可以帮助!如果没有,请尝试在您的问题中更具体一点

        【讨论】:

        • 这对我来说很好: 我的链接像 '/> 工作当您查看源代码时,他们链接到正确的文件,但他们没有应用此 CSS,我确实需要查看一些日志,但我的共享主机不允许我 :(
        【解决方案4】:

        您可以一次加载多个视图,或在其他视图中加载视图。

        所以在这种情况下,我建议您创建一个标题视图,您可以在其中加载所有 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)。

        毕业生,
        佩德罗
        @pcamcho

        【讨论】:

        • 是否可以在不调用$this-&gt;load-&gt;view('header')$this-&gt;load-&gt;view('footer')的情况下加载视图'header'/'footer'?
          也许它看起来像一个模板......
        • 了不起!这是加载 php 页面时无法找到 css 的答案
        • 我会改用base_url('css/moorainbow.css');,否则你可能会得到重复的URL部分。
        【解决方案5】:

        还要确保您没有重定向 .htaccess 文件中的 url,允许 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');
        

        【讨论】:

          【解决方案6】:

          我意识到的一件重要的事情是 .htaccess 中的 RewriteCond 指的是 FOLDERS 而不是 FILE TYPES。换句话说,除非您的样式表位于 /css/ 文件夹中,否则将 |css| 放在那里不会起到作用。列出实际的文件夹,所以 |styles||scripts| 或其他。 THEN,然后才会出现使用"&lt;?=base_url()?&gt;styles/style.css"(例如)。我花了大约 2 天的时间才弄清楚这一点,所以我希望阅读这篇文章可以为某人节省一些头发和高血压。

          【讨论】:

            【解决方案7】:

            这样做

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

            但是先在根目录下创建一个css文件夹,然后把style.css放在那里。

            【讨论】:

              【解决方案8】:

              首先,您创建一个控制器函数并加载 HTML 帮助程序以在 Codeigniter 中调用 css。

              示例代码

              <?php 
              class Home extends CI_Controller{
              
                  public function helper(){
                      $this->load->helper('html');    
                      $this->load->helper('url'); 
                      $this->load->view('index');
              
                  }
              }
              ?>
              

              然后使用link_tag关键字调用css文件。

              中的index.php 文件中的类似内容
              <html>
              <head>
                  <title></title>
                   <?php echo link_tag('css/moorainbow.css');?>
              </head>
              <body>
              <?php 
              .....
              ?>
              </body>
              </html>
              

              这里的css/ 是包含 moorainbow.css 文件的文件夹。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2018-02-26
                • 2012-07-13
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多