我试图让一些第三方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');
任何人都可以对这个问题有所了解吗?
谢谢!
答案 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(),它正在运行。 使用原始代码现在也可以使用。