【问题标题】:CSS Not Working With CodeIgniterCSS 不适用于 CodeIgniter
【发布时间】:2012-10-03 00:44:21
【问题描述】:

这是我的 CI 代码的一部分:

    class page extends CI_Controller {

        var $Page;

        public function __construct() {
            parent::__construct();
            $this->Page = 1;
            $this->load->model('posts_model');
            $this->load->helper('url');
        }


        public function index() {
            $data['posts'] = $this->posts_model->get_posts($this->Page);
            $this->load->view('header');
            $this->load->view('main', $data);
            $this->load->view('footer');
        }

        function page_num($page) {
            $this->Page = $page;
            $data['posts'] = $this->posts_model->get_posts($this->Page);
            echo $this->Page;
            $this->load->view('header');
            $this->load->view('main', $data);
            $this->load->view('footer');
        }

    }

这是我的查看文件的链接标签:

<link rel="stylesheet" type="text/css" href="css/indexpage.css" media="all"/>

当我打开索引文件 (/My-Site/) 时,CSS 工作正常,但是当我打开时

网址示例:

" /My-Site/page/page_num/3 ",

页面打开,但没有 CSS 样式!

任何人都可以帮助我吗?

【问题讨论】:

  • try href="css/style.css"
  • 你在哪个视图文件中保存了css链接?
  • @BhuvanRikka : 在根,css 文件(不在应用程序文件中)
  • 我不是在谈论文件..我是在谈论您保存css链接的视图的文件名..您是否将其保存在header中?

标签: php css codeigniter


【解决方案1】:

使用base_url()函数获取站点的url

base_url()给出了索引文件所在网站的url。

例如:/My-Site/

或者您可以将文件位置作为参数:base_url('/css/indexpage.css') 然后将其用作<link rel="stylesheet" type="text/css" href="<?php echo base_url('/css/indexpage.css');?>" media="all"/>

【讨论】:

    【解决方案2】:

    这取决于您放置 css 文件的位置。试试 ../css/indexpage.css

    【讨论】:

    • 非常模糊的答案
    【解决方案3】:

    在此处更改网址:

    <link rel="stylesheet" type="text/css" href="css/indexpage.css" media="all"/>
    

    到:

    <link rel="stylesheet" type="text/css" href="/css/indexpage.css" media="all"/>
    

    开头的斜线将指向没有任何子类别的域。

    【讨论】:

    • 我这样做了,但 CSS 不再适用于我的索引文件!
    • 这仅适用于网站具有类似 mylocaldomain.local 的主机名 (vhosts) 或网站是服务器的默认网站的情况。斜杠会将路径带到网站的根目录,因此如果 css 文件夹位于根目录中并且您使用的是主机名,那么这应该可以工作。
    【解决方案4】:

    试试看。

    你可以在你的 CSS 中使用 base_url()。见下面的代码。

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

    【讨论】:

      【解决方案5】:

      1 - 将其更改为:

      <link rel="stylesheet" type="text/css" href="<?php echo base_url('css/indexpage.css');?>" media="all"/>
      

      你应该已经知道了,在

      application/config/config.php
      

      设置

      $config['base_url'] = 'www.yorsite.com';
      

      2 -

      你只能在你的一个视图中包含 css

      如果您已将其包含在 header.php 文件中 不要将其添加到 main.php 或 footer.php

      【讨论】:

        【解决方案6】:

        使用 codeigniter 时请记住,唯一输出 HTML 的页面是 index.php 文件,因此您的 css 应该与此文件相关,或者您使用绝对 url。您可以在某些开发人员在 webroot 处创建资产文件夹的任何地方创建文件夹,他们将 javascript 文件夹 image 文件夹和 css 文件夹放在此处。但最安全的方法是为您的资产使用绝对链接——Javascript、css 和图像。 使用绝对链接最简单的方法是使用 base_url("assets/css/indexpage.css"); 使用方法如下:

        1. 在您的任何控制器中加载 url 帮助程序。 $this->load->helper('url);
        2. 在您的视图中,您想要进行链接的区域使用基本 url 功能。

        【讨论】:

          【解决方案7】:

          这通常是一个很好的习惯

          <base href="<?php echo base_url(); ?>" />
          

          在视图页面的头部。 这样您就不必担心将 base_url 添加到所有 href 和 src 属性。 因此,如果您的 css 文件位于 codeigniter/assets/css 文件夹中,请使用

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

          对于后续脚本和 css 类似,您可以只使用“assets/js/filename”或“assets/css/filename”。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-02-28
            • 2011-12-14
            • 2016-04-07
            • 2015-02-09
            • 2015-07-08
            相关资源
            最近更新 更多