2015-10-02 27 views
1

問題描述:笨3 - 缺少css文件

,當我瀏覽到我的web應用程序的某些頁面中,CSS文件沒有被加載/發現的。我得到404沒有發現錯誤,我不明白爲什麼。這一定很簡單,我沒有看到。

具體來說,當我導航到默認頁面時,它工作(下面調用index()方法),但是當我嘗試運行getallswitches()頁面時,沒有加載任何css文件。

代碼

我有以下CI控制器:

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Objects extends CI_Controller { 

     public function __construct() 
     { 
       parent::__construct(); 
       $this->load->model('objects_model'); 
     } 

     public function index() 
     { 
       $data['main_content'] = 'default'; 
       $this->load->view('includes/template',$data); 
     } 

     public function getallswitches() 
     { 
       $switches= $this->objects_model->get_all_switches(); 
       $data['switches']= json_encode($switches); 
       $data['main_content'] = 'switches'; 
       $this->load->view('includes/template',$data); 
     } 
} 

我使用一個模板系統來加載自己的看法。模板文件看起來是這樣的:

<?php 
     $this->load->view('includes/header'); 
     $this->load->view($main_content); 
     $this->load->view('includes/footer'); 
?> 

在我的header.php文件,我有邏輯添加CSS文件,像這樣:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 

    <meta name="description" content=""> 
    <meta name="author" content=""> 
    <link rel="icon" href="../../favicon.ico"> 
    <title>test app</title> 
    <link href="../application/assets/css/bootstrap.min.css" rel="stylesheet"> 
    <link href="../application/assets/css/justified-nav.css" rel="stylesheet"> 
    <link href="../application/assets/css/dashboard.css" rel="stylesheet"> 
    <script src="../application/assets/js/ie-emulation-modes-warning.js"></script> 
    </head> 

什麼我可能會搞亂任何提示嗎? 我一直在看這太久。

編輯1

這就是URL看起來它失敗時,如:

http://localhost/testapp/index.php/application/assets/css/bootstrap.min.css

而當它的工作原理:

http://localhost/testapp/application/assets/css/bootstrap.min.css

+0

使用瀏覽器控制檯還檢查DOM。比較一個頁面加載一個CSS文件的URL與另一個頁面看到的URL。 – Sparky

+0

Sparky,請參閱我的編輯1 – dot

回答

1

使用絕對路徑你的資源。

<link href="/application/assets/css/bootstrap.min.css" rel="stylesheet">

或利用BASE_URL()函數:

<link href="<?=base_url();?>application/assets/css/bootstrap.min.css" rel="stylesheet">

但一般:

不要把你的資產注入應用程序文件夾。更好地將資產文件夾放在應用程序的根目錄中,或者更好地將公共應用程序和系統文件夾分開,將資源移動到公用文件夾。 https://stackoverflow.com/a/32346618/5173560

+1

是的,**將資產移動到PUBLIC文件夾**。 – Sparky

0

這可能是你的根目錄的.htaccess文件的一些問題。

將這個代碼在你的.htaccess

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond $1 !^(index\.php|(.*)\.swf|forums|images|css|downloads|jquery|js|robots\.txt|favicon\.ico) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ ./index.php?$1 [L,QSA]