资源被解释为样式表,但是传输的MIME类型是text/html。

10

这是我的 HTML 代码:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv = "Content-Language" content = "en"/>
        <meta http-equiv = "Content-Type" content="text/html; charset=utf-8">
        <link rel="stylesheet" type="text/css" href="/xxx/app/www/style.css">

现在当我加载页面时,Safari的检查器显示:

资源被解释为样式表,但传输的MIME类型为text/html

我正在使用MAMP的localhost。 我不确定需要修改什么才能使其正常工作。 我读到说这可能是某种服务器问题。

我该如何解决这个问题?


类似的问题(如果不是完全相同的)--> https://dev59.com/unA75IYBdhLWcg3wH1JB - rt2800
请查看此答案:https://dev59.com/UWsz5IYBdhLWcg3wNU8R#37024887 - abdul rashid
3个回答

11
在你的根目录下创建一个 .htaccess 文件(或更新现有文件),并在其中添加此行内容。
AddType text/css .css 

这将告诉 Apache 为 .css 文件发送正确的 content-type 标头。


1
我认为正确的方式是AddType text/css css,不需要点号。 - Pedro Luz
在Windows上怎么样?我正在运行Django服务器,当我将Debug标志设置为False后,这种情况发生了。 - Saher Ahwal

0

可能是您的Web服务器已正确配置,但实际上返回的是HTML而不是CSS。

检查您是否具有正确的路径、拼写、大小写等。直接访问URL并查看返回内容。您的Web服务器可能会响应错误页面(HTML)和200-Ok而不是404-Not Found

我不是说这曾经发生在我身上...


0

有可能不仅是 CSS 资源被错误解释了,这可能是您的 Web 服务器配置问题。

检查的最佳方法是转到 Chrome -> 网络选项卡,并检查每个请求的响应部分。 此外,您可以在终端中运行 $ curl -I http://path_to_file_or_page 并查看响应,您应该以以下格式看到它,例如 Content-Type: image/jpeg


所以,如果发生Web服务器(apache)对所有文件执行此操作,则可以尝试以下方式解决问题:

检查您的/etc/apache2/apache2.conf 如果有任何SetHandler application/x-httpd-php行,请尝试将其注释,然后通过$ sudo system apache2 reload重新加载您的apache。

如果问题仍然存在,请告诉我们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接