CodeIgniter:CSS:@import问题

时间:2015-10-20 03:12:10

标签: css .htaccess codeigniter mod-rewrite import

我试图让一些第三方CSS模板与CodeIgniter一起使用。我认为这个问题是由CSS中的@import语句造成的,有点不确定原因。

只加载控制器时一切正常。但是当通过控制器加载任何东西时,事情会中尾部斜杠打破了CSS。

http://example.com/controller = OK
http://example.com/controller/ = Broken

遵循建议的做法,目录结构使用assets目录,如下所示:

+
├── application
├── assets
│   ├── css
│   ├── fonts
│   ├── images
+

mod_rewrite工作正常。我可以直接访问这些文件。

http://example.com/images/picture.jpg = OK
http://example.com/assets/images/picture.jpg = OK

的.htaccess

# Rewrite to use the assets directory for site elements
 RewriteCond $1 ^(css|fonts|images)
 RewriteRule ^(.*)$ /assets/$1 [L]

# Rewrite to index.php/URL
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ index.php/$1 [L]

我尝试在视图中使用base_url()。

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

但我认为问题是因为@import用于css文件。

@import url('font-awesome.min.css');
@import url('mobile.css');

任何人都可以对这个问题有所了解吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

观看apache日志,我看到了以下内容:

GET /controller/function/css/style.css HTTP/1.1" 404 

经过另一次搜索,我发现这个answer解决了我的问题。在页面的<base href="/" />部分设置<head>

<head>
 <base href="/" />
 ..
 <?php echo link_tag('css/style.css'); ?>
</head>

你可以看到我改为CI link_tag(),它正在运行。 使用原始代码现在也可以使用。