codeigniter 3 - 缺少css文件

时间:2015-10-02 18:53:57

标签: php css codeigniter

问题描述:

当我导航到我的网络应用程序中的某些页面时,没有加载/找到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

2 个答案:

答案 0 :(得分: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 :(得分: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]