在asp.net项目里使用img标签展示.gif图片,然后报503 (Service Unavailable).
错误信息
packingTorqueCrane.gif:1 GET http://localhost/images/packingTorqueCrane.gif 503 (Service Unavailable)
解决思路
添加绝对地址
- 刚开始一看5xx错误,直接奔IIS去了, 对IIS server重启,配置都没有效果
后来想到,项目中其他的图片都正常load, 果断弃坑 - 然后找差异,这个图片是新添加进来到images文件夹的,好像图片的权限,访问组都没配置,右击找属性,果然是block住了,去掉block,再设好访问组权限,重新刷新,还是Service Unavailable
- 这时再仔细看下报错信息,发现图片的访问地址没有site目录
Note:
- VS 2017的快捷设置图片会设置为相对地址
src="…/…/…/images/packingTorqueCrane.gif",
但服务器访问图片时会忽略掉项目目录,改为绝对地址正常工作
src="<%= this.Request.ApplicationPath %>/images/packingTorqueCrane.gif"/> - Request.ApplicationPath 会访问default page的page_load方法, 会增加页面加载时间.
错误地址:
<img id="imgPackTorqueCrane" style="width:700px; " alt=" " src="../../../images/packingTorqueCrane.gif">
绝对地址:
<img id="imgPackTorqueMasoneilan" style="width:700px; " alt=" " src="/sitename/images/packingTorqueMasoneilan.gif">
CSS 加载图片
推荐解决方案: 使用css加载页面图片
<span class="clsEditFilter clsCommon clsedit" title="test" />
.clsEditFilter{
cursor:pointer;
display:block;
}
.clsCommon {
background: url('../images/common.png') no-repeat top left;
background-repeat: no-repeat;
display: block;
}
.clsedit {
width: 16px;
height: 16px;
background-position: 0 -320px;
}