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的主要内容,如果未能解决你的问题,请参考以下文章