CSS 不适用于 CodeIgniter

Posted

技术标签:

【中文标题】CSS 不适用于 CodeIgniter【英文标题】:CSS Not Working With 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中? 【参考方案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"); 使用方法如下:

    在您的任何控制器中加载 url 帮助程序。 $this->load->helper('url); 在您的视图中,您想要进行链接的区域使用基本 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”。

【讨论】:

以上是关于CSS 不适用于 CodeIgniter的主要内容,如果未能解决你的问题,请参考以下文章

CSS 不适用于 GH 页面

CSS模块不适用于反应组件

为啥 css 动画不适用于背景大小 100%

jQuery .css()函数不适用于变量[重复]

CSS 不适用于 DOMPDF

CSS 不适用于 CodeIgniter