我从一个网站下载了一个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所做的:
- 在安装的根目录中创建一个名为"static"的文件夹("application"、"system"answers"index.php"的对等文件夹(
- 创建一个名为"css"(/static/css(的子文件夹
- 复制那里的blueprint文件夹(/static/css/bluent/(
-
打开.htaccess。更改此。。。
RewriteCond $1 !^(index'.php|images|robots'.txt)
到此:
RewriteCond $1 !^(index'.php|images|static|robots'.txt)
-
在您的头文件(例如/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"作为文件夹名称并没有什么特别之处。这只是我随意取的名字。