-4

我有一个非常简单的 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 添加到根的 .htaccess 以确保它正确加载 css 文件而不添加 index.php。我认为 CI 相关设置很好,浏览器可以找到 css 文件,否则如果没有 DOCTYPE 行,它应该无法工作。

谢谢你。

- - 编辑 - -

伙计们,感谢您测试 html 和 css。我测试过,他们自己工作得很好。我认为问题出在CI。我的文档根目录中有 assets 文件夹,位于 subfoder 和 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 */

谢谢你。

4

1 回答 1

2

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

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

AddType text/css .css

到我的.htaccess。现在它起作用了。

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

于 2013-06-16T14:00:18.763 回答