外部CSS文件未在浏览器中加载

时间:2011-03-15 04:14:38

标签: css configuration mime-types mime

首先,我想先写一下我对编程很新,所以请原谅我,如果我不能快速跟进。

现在,我遇到了一个问题,这个问题在过去的几天里一直困扰着我,我到处寻找解决方案。

我正在使用WAMP服务器配置。在我开始使用CSS之前,一切都运行良好。我有一个外部CSS文件。

当我在Dreamweaver中查看我的HTML页面时,我发现它正确连接到该CSS文件。我可以看到在“设计”视图中应用的样式。但是,当我在浏览器中查看页面时,Firefox说(在错误控制台中)无法加载.css文件,因为它的MIME类型是text / html而不是text / css。

所以我认为这是一个服务器配置问题。我做的是以下内容: 我进入.HTACCESS文件并添加了以下行: AddType text / css .css

重新启动服务器后,仍然无法解决问题。出于某种原因,浏览器继续将我的css文件作为html文件读取。知道这里可能出现什么问题吗?

这是我试图在浏览器中加载的文件的头部(它实际上是一个Smarty模板):

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="../htdocs/css/styles.css" type="text/css" media="all" />
</head>

另外,请注意我使用Zend框架编码。 这是我的.HTACCESS文件:

上的RewriteEngine

RewriteCond%{SCRIPT_FILENAME}!-f

RewriteCond%{SCRIPT_FILENAME}!-d

RewriteRule ^(。*)$ index.php / $ 1

AddType text / css .css

所以当我在浏览器中查看页面并点击指向我的CSS文件的链接时,我接受了DA的建议并点击了View Page Source。这就是它告诉我的:

当我点击链接时,我看到了:

<br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0'  cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in C:\shaancode\www\phpweb20\htdocs\Zend\Controller\Dispatcher\Standard.php on line <i>248</i></th></tr>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Zend_Controller_Dispatcher_Exception: Invalid controller specified (error) in C:\shaancode\www\phpweb20\htdocs\Zend\Controller\Dispatcher\Standard.php on line <i>248</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>

<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0006</td><td bgcolor='#eeeeec' align='right'>382488</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\shaancode\www\phpweb20\htdocs\index.php' bgcolor='#eeeeec'>..\index.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0892</td><td bgcolor='#eeeeec' align='right'>4748936</td><td bgcolor='#eeeeec'>Zend_Controller_Front->dispatch(  )</td><td title='C:\shaancode\www\phpweb20\htdocs\index.php' bgcolor='#eeeeec'>..\index.php<b>:</b>42</td></tr>
</table></font>

4 个答案:

答案 0 :(得分:1)

href="../htdocs/css/styles.css"

htdocs目录通常是webroot。因此,虽然这是本地文件系统上非常好的路径,但是一旦通过Web服务器访问它,../就会被忽略,因为您已经位于本地部分的顶部。然后没有htdocs所以路径的其余部分应该是404。

由于某种原因,Zend发出了“无效的控制器指定(错误)”(意思是“我找不到我要求的东西”,200状态代码,所以浏览器说“这个”是一个HTML文档“而不是”没有找到任何东西“。

从网址中删除../htdocs/部分。

答案 1 :(得分:0)

您可能正在使用CSS <link rel=stylesheet href="cssName.html"> 这可能类似于Mozilla Bug。请分享您的代码,以便我们提供更好的建议。

答案 2 :(得分:0)

这里的问题可能有两个问题。要么缺少CSS文件,而且系统正在提供404页面(如果你已经配置了它),那么浏览器就会抱怨它不是CSS文件。

或者问题可能是您遇到了服务器配置问题。如果是WAMP的新安装,这是不太可能的。

您是否尝试过直接访问该文件?

  • 在Firefox(或任何浏览器)中查看来源
  • 点击您制作的CSS链接。如果您无法单击它,则可能需要将其粘贴到新窗口中。
  • 是否会将您带到CSS文件或其他文件?

如果它转到另一个文件,表示您没有正确链接它。使用绝对路径(来自您的webroot)而不是相对路径可能会更好。

编辑:在Zend Framework中使用样式表

假设您的CSS文件位于ZF / public / css中,您可以将它们包含在您的布局或视图中

$this->headLink()->appendStylesheet('/css/styleForThisPage.css'); // in your view 

指定要打印的区域(在布局中)

echo $this->headLink()

但是,如果它是一个全站点css文件,并且您只想在布局中包含CSS,那么只需回显它就足够了

echo $this->headLink()->appendStylesheet('/css/global.css');

答案 3 :(得分:0)

感谢大家的帮助!很多人都是对的,它最终与href路径有关。所以,我能够修复错误,但似乎解决方案很简单,问题很愚蠢!

在Dreamweaver中,我没有定义Site Root文件夹!这导致了一个问题,因为我使用的是相对路径,但最终没有正确找到它,因为没有定义站点根目录!

因此,我将Dreamweaver中的站点根目录设置为我的根目录(.HTACCESS所在的位置),并将路径更改为“/css/styles.css”。

现在它有效!

很抱歉给大家带来麻烦,谢谢大家的帮助!