【发布时间】:2011-07-21 19:15:23
【问题描述】:
我非常了解 Codeigniter,但在尝试将静态站点转换为 CI 时遇到了这个问题。使用某些 url 时加载 css 文件时会出现问题。我试图严格让 php 远离视图(事实上希望只有 .html 页面用于视图)。
我还搜索了许多论坛以寻找加载 css 的解决方案。我遇到了一些解决方案,但只有当您在 CI 中创建一个全新的站点时它们才会有所帮助。我知道
在 href 链接之前使用以使其站点独立
但不想使用它,因为我想将现有的静态网站转换为 CI。这意味着更改每个文件的每个href。 (如果页面很多,这似乎是一场噩梦)。
在某些情况下,我无法加载 css 和其他资源文件。以下是我迄今为止在该项目中所做的一切的描述。
- 在根目录下使用 .htaccess 删除“index.php”文件
- 使用codeigniter 2.0.2自带的标准文件夹结构
- 所有图像和资源(例如 css、img、js ......等)都直接放在根文件夹中(即应用程序和系统文件夹所在的位置)
- 从视图文件访问所有资源,就好像 html 文件与资源一起位于根文件夹中一样(例如 href="css/style.css")
以下是控制器的示例说明
class Blog extends CI_Controller {
public function index(){
$this->load->view('blog.html');
}
public function posts(){
$this->load->view('post.html');
}
}
现在我面临的问题是当我将某个 url 用于“索引”功能时。 . css 被正确加载。
但如果我在此之后添加一个斜线或使用任何其他功能。加载 css 时出现问题。
例如。
/* This url loads css correctly */
http://localhost/ci-test/blog
/* these urls do not load css */
http://localhost/ci-test/blog/
http://localhost/ci-test/blog/posts
我做错了什么吗?还是我的 .htaccess 文件有问题? (包括在下面)
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
我需要做些什么才能以最小的努力将当前网站导入 CI。
【问题讨论】:
标签: css url codeigniter structure