PHP CodeIgniter CSS


PHP CodeIgniter CSS

我从一个网站下载了一个html主题,并试图将其放入我的codeigniter项目中。我将下载的主题文件夹中的.html文件复制并粘贴到我的视图"index_v.php"中。我还将css文件夹直接复制到视图文件夹中。index_v.php文件调用.css文件,如下

<link rel="stylesheet" href="style.css"> 

然而,当我加载页面时,它不会加载.css文件。

您可能遇到了相对路径的问题。如果您的URL是/users/welcome/,则它正在查找文件/users/welcome/style.css

解决方案:

  • 使用完整的URL:<link rel="stylesheet" href="http://example.com/style.css">

  • 使用CI的link_tag(),它会将您的基本url预先发送到路径

  • 使用绝对路径:<link rel="stylesheet" href="/style.css">

如果您无法直接访问该文件,请检查您正在使用的.htaccess文件。大多数CI安装都使用以下内容:

RewriteCond $1 !^(index'.php|public|robots'.txt)
RewriteRule ^(.*)$ /index.php?/$1 [L] 

有了这个规则,有两个文件和一个目录可以直接访问(index.php,一个名为public的目录,robots.txt(。其余的通过index.php路由。

最好为所有静态文件(图像、css等(创建一个目录,并将该目录名添加到排除列表中。将这些文件保存在根目录中只会造成大量混乱。

而不是这个

<link rel="stylesheet" href="style.css">

试试这个:

<link rel="stylesheet" href="<?php echo base_url();?>"> 

或者,如果您的css位于名为css的目录中:

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

您的Javascript将以与相同的方式工作

您必须将该CSS文件放在用于提供静态内容的文件夹中(我已经有一段时间没有使用CI了…可能是static/?请检查您的(apache(重写器…(。然后更改href,使其指向该目录中的文件。

使用firebug,看看浏览器试图解析CSS的URL是什么。我打赌你会发现它得到了404。

尝试在包含的CSS文件(即(之前附加/Application

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

问题在于视图运行的上下文。

希望对有所帮助

在codeigniter中,css等内容的路径是相对于您的webroot index.php文件的。

我建议你把css放在webroot的assets/css或/css文件夹中,然后你的视图的链接将是

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

例如。

结合上面的一些答案,这就是我在CodeIgniter安装中加载Blueprint.css所做的:

  1. 在安装的根目录中创建一个名为"static"的文件夹("application"、"system"answers"index.php"的对等文件夹(
  2. 创建一个名为"css"(/static/css(的子文件夹
  3. 复制那里的blueprint文件夹(/static/css/bluent/(
  4. 打开.htaccess。更改此。。。

    RewriteCond $1 !^(index'.php|images|robots'.txt)
    

    到此:

    RewriteCond $1 !^(index'.php|images|static|robots'.txt)
    
  5. 在您的头文件(例如/application/views/template/header.php(中,使您的链接站点相对:

    <!-- Framework CSS -->
    <link rel="stylesheet" href="/static/css/blueprint/screen.css" type="text/css" media="screen, projection">
    <link rel="stylesheet" href="/static/css/blueprint/print.css" type="text/css" media="print">
    <!--[if lt IE 8]><link rel="stylesheet" href="/static/css/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
    

请注意,这种方法适用于任何静态内容(例如Prototype.js、jQuery、公共图像等(。只需使您的href链接与网站相对即可。

"static"作为文件夹名称并没有什么特别之处。这只是我随意取的名字。