php - 图像随机损坏(但刷新后加载)并显示 "Resource interpreted as Image but transferred with MIME type text/html"

标签 php html image .htaccess

我目前正在开发一个简单的 php 网站

问题是,我整个网站中的图像(发生在所有 php 文件中)随机损坏并显示错误 资源解释为图像,但以 MIME 类型文本/html 传输,但是,如果我尝试多次刷新页面。图像可以再次加载并且错误消失了。

我已经检查了所有 img 路径并且图像存在。另外,我检查了我的文件中没有 img src="" 。是服务器设置的原因吗?我检查了 .htaccess 文件,它是空白的。如何解决这个问题?谢谢

Chrome 网络开发人员:

Request URL:http://goodbyedear.com.hk/images/index_48.jpg
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Cookie:PHPSESSID=ee5297bd4973576b6a318cd9a33c4151; aaaaaaa=96b0422aaaaaaaa_96b0422a
Host:goodbyedear.com.hk
If-Modified-Since:Mon, 21 Oct 2013 17:59:24 GMT
Referer:http://goodbyedear.com.hk/index.php
User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
Response Headersview source
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:Close
Content-Length:144
Expires:Sat, 6 May 1995 12:00:00 GMT
P3P:CP=NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM
Pragma:no-cache

我的代码(供引用):

<?php
session_start();
require_once('db_connect.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>首頁</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript" src="js/jquery.latest.js"></script>
</head>
<body>
<div id="container">
    <?php require_once ('header.php'); ?>
    <div id="center">
        <img id="slider" src="images/index_17.jpg" />
        <div id="subGroup">
            <div class="sub">
                <img class="subLeft" src="images/index_18.jpg" />
                <img class="subTopRight" src="images/index_19.jpg" />
                <div class="subBottomRight">作為全港第一間成立的寵物火化殯儀公司,其心路歷程盡在此。<a class="viewAll" href="intro.php">View All</a></div>
            </div>
            <div class="sub" >
                <img class="subLeft" src="images/index_21.jpg" />
                <img class="subTopRight" src="images/index_22.jpg" />
                <div class="subBottomRight">讓您了解詳細的服務流程, 令您更安心... <a class="viewAll" href="service.php">View All</a></div>
            </div>
            <div class="sub">
                <img class="subLeft" src="images/index_28.jpg" />
                <img class="subTopRight" src="images/index_29.jpg" />
                <div class="subBottomRight">我們了解每隻寵物在主人心目中都是獨一無二,所以提供各種不同的紀念品,讓客人選擇製作獨一無二的紀念品,讓您的寵兒以另一型式留在主人身邊。<a class="viewAll" href="souvenir.php">View All</a></div>
            </div>
            <div class="sub">
                <img class="subLeft" src="images/index_30.jpg" />
                <img class="subTopRight" src="images/index_31.jpg" />
                <div class="subBottomRight">感謝您對我們的任何意見,歡迎留言給我們!<a class="viewAll" href="board.php">View All</a></div>
            </div>
        </div>
        <div id="latestNews">
            <img id="latestTitle" src="images/index_23.jpg" />
            <img id="latestLeft" src="images/index_25.gif" />
            <div id="latestContent">
                <?php
                $sql = "SELECT * FROM pet_news LIMIT 6";
                $result = $dbh->query($sql);
                if ($result->rowCount() == 0) {
                    echo "<p>沒有最新消息</p>";
                } else {
                    foreach ($result->fetchAll() as $key => $row) {
                    ?>
                    <div class="newsItem">
                        <div class="newsBoxTitle"><?php echo $row["title"];?></div>
                        <div class="newsBoxDate"><?php echo $row["date"];?></div>
                        <div class="newsBoxContent"><?php echo mb_substr($row["content"],0,30,"UTF-8")."......";?></div>
                        <a class="newsLink" href="news.php?page=1#news<?php echo ($key + 1);?>">詳情</a>
                    </div>
                    <?php
                    }
                }
                $dbh = null;
                ?>
            </div>
            <img id="latestBottom" src="images/index_36.gif" />
        </div>
    </div>
    <?php require_once ('footer.php'); ?>
</div>
</body>
</html>

最佳答案

您面临的问题(很可能)是由您的 httpd.conf 的这一行引起的:

#LoadModule mime_module modules/mod_mime.so

您必须取消注释,使其看起来像(之后重新启动 apache):

LoadModule mime_module modules/mod_mime.so

此模块负责为您的 HTTP 响应提供 mime 类型(Content-Type header )。没有它(Content-Type header ),您的浏览器必须执行所谓的类型嗅探,这是粗略描述的 here对于 IE(但对于其他浏览器可能看起来很相似)

另一个原因(如果您有此模块工作)是您缺少 mime.types 文件或它不包含您尝试提供的文件的 mime 类型。

见下方 - 左侧 - 这是您提供图像的方式,右侧是它应该的样子:

enter image description here

左 - mod_mime 注释掉

右 - mod_mime 未注释

关于php - 图像随机损坏(但刷新后加载)并显示 "Resource interpreted as Image but transferred with MIME type text/html",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19827572/

相关文章:

javascript - 将 json 对象从 php 传递到 javascript

php - SQL 语法有问题

php - wordpress:仅在短代码出现的地方加载 javascript

JavaScript-创建一个函数来将字符串的第一个字母大写

javascript - 为什么我关于复选框选中事件的 JavaScript 不起作用

javascript - 使用javascript动态添加只读输入框的总和

php - 使用 php 获取 FLV 持续时间

html - colspan 和图像不工作

html - 在背景图像之上应用图像

angular - 在使用 Angular 在 Firebase 中上传之前调整大小和压缩图像质量