4

这是我的 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 样式!

任何机构可以帮助我吗?

4

7 回答 7

10

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

于 2012-10-12T08:28:44.083 回答
4

尝试一下。

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

<link rel="stylesheet" href="<?php echo base_url(); ?>css/style.css" type="text/css" media="all" />
于 2012-10-12T08:35:33.510 回答
3

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

IE

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

于 2012-10-12T08:39:04.617 回答
1

使用它通常是一个好习惯

<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”。

于 2012-10-12T17:16:15.043 回答
0

在此处更改网址:

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

到:

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

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

于 2012-10-12T08:31:04.387 回答
0

使用 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 功能。
于 2012-10-12T09:55:49.420 回答
-2

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

于 2012-10-12T08:30:30.650 回答