我正在使用CodeIgniter 版本2.1 &尝试使用header.php
链接我的视图中的图像,样式表,javascript文件等资源:
<link href="<?php base_url();?>css/style.css" rel="stylesheet" />
我的控制器代码,调用视图:
<?php
class Main extends CI_Controller{
public function index() {
$this->load->view('header');
}
../application/views/header.php
。 ../application/views/css/style.css
这不起作用。我收到了 404 - 找不到页面错误。然后,我尝试将css/style.css
移到webroot的../application
目录之外。令我鄙视的是,在webroot(outsite ../application/views)中拥有资产似乎很有效。
现在, 我的问题是
../application
目录正确的方法吗?如果是/否,那么为什么?../application/views
目录吗?怎么样?PS:我是CodeIgniter框架的新手,所以不知道最佳做法
答案 0 :(得分:7)
如果您看到this,那么.htaccess
用于从网址中删除index.php
的部分,具有重写条件:
RewriteCond $1 !^(index\.php|images|robots\.txt)
在此行中,图像是一个文件夹,在模块重写时将被忽略。因此,您可以将其替换为资产,将所有直接链接文件放在那里,并愉快地使用它们。
RewriteCond $1 !^(index\.php|assets|robots\.txt)
编辑:我的不好,没看到问题被问到的日期。然而,应该对某人有用。
答案 1 :(得分:2)
最好将资源放在webroot文件夹中。当从服务器请求assest时(取决于你的设置),它将从根目录开始并继续工作。
http://yoursite.com/application/views/css/mystyles.css
如果它在根目录中你只需要从那里开始
http://yoursite.com/css/mystyles.css
虽然将它们全部放在文件夹(/ assets)中以保持它们包含起来可能是值得的,但是能够编写更有效的重写规则(如果你试图从url中删除index.php)忽略单个文件夹而不是所有单个文件夹(/ css,/ js等)
至于views文件夹,最好将它保留在application
文件夹中,因为CodeIgniter有一个内置的加载器,当你使用代码{{1}时,它会自动检查/application/views
视图文件}}
虽然有办法移动视图文件夹,但如果您是CI新手,最好暂时将其保留在那里。
答案 2 :(得分:1)
对于链接css,您可以执行以下操作:
echo link_tag('css/mystyles.css');
选中以获取参考:http://codeigniter.com/user_guide/helpers/html_helper.html