使用DOCTYPE时CSS不起作用

时间:2013-06-16 13:30:50

标签: php css codeigniter

我有一个非常简单的html页面:

<!DOCTYPE html>
<html>
<head>
    <title>Title</title>
    <link rel="stylesheet" type="text/css" href="http://127.0.0.1/assets/css/main.css" />
</head>
<body>
        <div>hello world!</div>
        <br/>
        <div id='global_footer'>copyright 2013</div>
    </body>
</html>

main.css是:

body { font-family: arial; background-color: rgb(185,179,175); }

通过点击浏览器源代码页中的链接确保链接正常,浏览器确实正确加载了css源代码。

但是,CSS不适用于该页面。如果我删除DOCTYPE行,完全相同的代码工作正常。真的不知道是什么原因。

有关更多信息,我正在使用CodeIgniter。 assets文件夹位于我的文档根目录下,与应用程序文件夹同级。我已经将css添加到root的.htaccess中以确保它正确加载css文件而不添加index.php。我认为CI相关的设置很好,浏览器可以找到css文件,否则它不应该没有DOCTYPE线。

谢谢。

---- ---- EDIT

伙计们,谢谢你们测试了html和css。我测试了,他们自己工作得很好。我认为问题来自CI。我的文档根目录中有资源文件夹,在子文件夹和main.css文件中。不知道为什么这个html和css在CI下不起作用。我的控制器:

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

class Welcome extends CI_Controller {

/**
 * Index Page for this controller.
 *
 * Maps to the following URL
 *      http://example.com/index.php/welcome
 *  - or -  
 *      http://example.com/index.php/welcome/index
 *  - or -
 * Since this controller is set as the default controller in 
 * config/routes.php, it's displayed at http://example.com/
 *
 * So any other public methods not prefixed with an underscore will
 * map to /index.php/welcome/<method_name>
 * @see http://codeigniter.com/user_guide/general/urls.html
 */
public function index()
{
    $this->load->helper(array('html','url'));
    $this->load->view('main');
}
}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */

谢谢。

1 个答案:

答案 0 :(得分:2)

感谢您提供的所有信息/帮助。我刚刚发现了这个问题:

CSS外部文件仅在正确的MIME类型下工作。我以前的MIME类型是text / plain。我没有在我的.htaccess中配置任何内容,它在我的CI中以某种方式设置为此。要解决此问题,我需要将MIME类型更改为text / css。使用Apache,我添加

AddType text/css .css

到我的.htaccess。现在它有效。

这个问题现在可以关闭了。谢谢大家的帮助。