将站点从暂存环境移动到生产环境时,不会显示 .png 图像文件。直接转到图像时,firefox 报告:
图片(image-path)无法显示,因为它包含错误。
我在我的 apache 配置中检查了 mime.types,它包含一行
图片/png png
有人知道是什么原因造成的吗?我以前从未遇到过。
我解决了检查文件名中大写字母的相同问题。我所有的 .png 文件都有大写的 .PNG 后缀。把所有的东西都变成小写了,它起作用了。
同样的问题两周后试图解决它。
在 ubuntu linux 上,问题与 sendfile 有关。基于内核的 os 函数不能与 apache2 一起正常工作。 刚刚在我的 apache2.conf 中添加了“EnableSendfile off”,现在图像加载正常了。
希望对您有所帮助。
检查 .htaccess 文件 url 重写或任何权限/限制等
上传任何 png 图像并尝试使用您的 png 文件的直接路径在浏览器中打开它。例如http://localhost/images/test.png(如果它工作正常,这意味着你的apache成功地完全处理了你的png)
检查您是否在以前的服务器(主机)中创建了图像目录的任何符号链接。
检查您的目录权限。
清除浏览器缓存。
检查您之前主机中的 appach 虚拟主机文件 httd.conf。可能之前已经创建了一些别名或类似的东西。 httpd.conf: ...
<VirtualHost www.mydomain.com:80> ServerAdmin [email protected] DocumentRoot /home/www/www.mydomain.com/htdocs ScriptAlias /cgi-bin/ /home/www/www.mydomain.com/cgi-bin/ ServerName www.mydomain.com Alias /images/ /home/www/www.mydomain.com/images/ Alias /pictures/ /home/www/www.mydomain.com/upload/ Alias /errors/ /home/www/www.mydomain.com/errors/ Alias /catalog/ /home/www/www.mydomain.com/catalog/ ErrorLog /home/www/www.mydomain.com/logs/error_log CustomLog /home/www/www.mydomain.com/logs/access_log ScriptLog /home/www/www.mydomain.com/logs/script_log ErrorDocument 403 /errors/403.html ErrorDocument 404 /errors/404.html ErrorDocument 500 /errors/500.html </VirtualHost>
让我知道这是否有效
如果您的图像是真实的:图像可能在 FTP 传输过程中损坏(不完整或错误/非二进制传输)。从服务器下载回来看看。
如果您的图像是虚拟的或脚本生成的:发布代码,我们可以看看!例如,如果您在
<?php
开始标记之前有一些字符,这种情况经常发生在 PHP 中。
不幸的是可能有很多事情:
如配置文件注释所说
“EnableSendfile 必须在从网络安装的文件系统提供服务时关闭,或者如果对这些功能的支持在您的系统上被破坏。”
这对我来说是个问题。
确保在通过 FTP 传输时以二进制模式传输图像
这已经很老了,但是如果有人正在寻找解决显示带有“img”标签的 .png 文件的问题的方法,我花了很长时间搜索但没有结果。我一时兴起检查了图像,它有一个 alpha 通道。我删除了 alpha 通道和尤里卡,它起作用了。另一件事要检查你是否有类似的问题。