2015-10-20 38 views
1

我想獲得一些第三方CSS模板CodeIgniter的工作。我認爲這個問題是由於CSS中的@import語句引起的,不確定原因。CodeIgniter:CSS:問題與@import

加載只是控制器時,一切正常。但是當加載任何東西通過控制器時,事情就會中斷尾部的斜槓會破壞CSS。

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

下面推薦的做法,目錄結構採用資產目錄,如下所示:

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

的mod_rewrite工作correcty。我可以直接訪問這些文件。

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

嘗試類似於'url('../ css/font-awesome.min.css');'主目錄上的css beaning文件夾 – user4419336

+0

嘗試不使用url。例如。 '@import「font-awesome.min.css」;' – DFriend

+0

看着apache的日誌,請求被打到/ controller/function/assets/etc .. 經過另一次搜索,我發現這個[question](http:/ /stackoverflow.com/questions/32257968/php-mvc-application-loosing-path-references-to-jss-and-css-files)解決了我的問題。 ' .. ..' –

回答

0

看着Apache日誌,我看到以下內容:

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

另一次搜索之後,我發現這是answer解決我的問題。在頁面的<head>部分設置<base href="/" />

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

你可以看到我改爲CI link_tag(),它正在工作。 使用原始代碼現在也應該可以工作。