codeigniter基目录中的css / image / js文件问题

时间:2013-12-11 03:29:57

标签: php codeigniter

我一直在设置.htaccess文件以将所有请求重定向到windows 7中的xampp下的index.php文件(从url中删除index.php),并认为我可能为自己创建了一个问题......但是又可能是无关的。

我似乎在引用我在css,images和js的基目录中设置的目录时遇到了问题。我已经跟踪了这个问题,但还不确定如何解决它。如果我导航回目录../css/stye.css与css / style.css,那么样式表将加载。如果我使用索引函数调用键入基本URL或基本URL,则所有内容都按预期加载:

http://localhost/site
http://localhost/site/home

现在我添加控制器方法名称

http://localhost/site/home/index

我的css不再包括在内(直到我进入firebug并导航回目录)

位于我的基本目录中的.htaccess文件(我发现使用xampp)中的代码如下:

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

我公开承认我不太了解.htaccess文件。

CSS href:

<link rel="stylesheet" type="text/css" href="css/jmw.css" />

修改

按照Rajeev Ranjan的建议编辑.htaccess文件

RewriteEngine on
RewriteCond $1 !^(index\.php|robots\.txt|css|images|js)
RewriteRule ^(.*)$ ./index.php/$1 [L]

我假设每个视图都像index.php文件本身一样工作并以这种方式访问​​目录。在样式表,javascript或图像调用之前使用base_url()函数时,一切都有效,但我试图不在视图文件的多个位置依赖base_url()函数。

4 个答案:

答案 0 :(得分:1)

我也遇到了这个问题。请将此行放在.htaccess文件中

RewriteCond $1 !^(index\.php|images|robots\.txt|css|img|js)

即。允许css。

Wampp:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|css|img|js)
RewriteRule ^(.*)$ ./index.php/$1 [L]

并通过

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

,或者

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

答案 1 :(得分:0)

你可以试试这个例子

<link rel="stylesheet" type="text/css" href="<?=base_url()?>css/jmw.css" />

答案 2 :(得分:0)

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|css|img|js)
RewriteRule ^(.*)$ ./index.php/$1 [L]

In second line ie;

RewriteCond $1 !^(index\.php|images|robots\.txt|css|img|js)

You have to pass the folder name of your css, js and image files like:
RewriteCond $1 !^(index\.php|images|robots\.txt|css|img|js|assets|images)

答案 3 :(得分:0)

终于搞清楚了!在过去几个月使用codeigniter并对.htaccess文件中的确切内容有了更广泛的了解后,解决方案显而易见。由于.htaccess文件指向controllers目录,每当我尝试从'/ images'等访问我的images / js / css文件时,它都会查看控制器目录。

为了解决这种情况,我在config.php中设置了base_url ='',在那里我调用images / js / css,我横向返回一个目录'../ images / file.png'。简单的解决方案,只是让我的大脑点击了一下:)