动机
看到之前同事写的程式发现可能会有问题,原本的做法是把使用者上传的图片储存在IIS Website实体路径/Img,也就是说在正常部属的行为下(实体路径档案全部删除,将新的档案程式複製到目录下),可能会误删/Img目录而导致正在被使用中的图片都遗失,客户绝对是跳脚
研究
将档案储存路径移至外部(不与Website同目录),进而避免部属时误删情况发生。研究发现IIS Virtial Directory可能可以达成此需求,当然我也参考了大神们的教学,设定如下
http://jengting.blogspot.com/2016/06/IIS-File-Share.html
实作
按照上面教学的设定,在本机测试时发现问题,浏览器输入正确图片网址没有显示,马上F12 Network侦错一下,发现图片回传200 浏览器不抱错但无法预览(空白),response body也是空白,看起来是有读取到实际档案,但是无法进一步转出,因此不信邪的故意输入不存在的图片名称试试看,输入错误网址会报Error 404,那感觉没有错啊
解决方案
爬了很多文才找到解决方案,要在web.config中加入下面这段即可正常读取,目前因为只有用到jpg,所以只有做.jpg的设定,暂时还没有去研究多种图片格式要如何设定
<system.webServer> <handlers> <add name="ImageHandler" path="*.jpg" verb="*" preCondition="integratedMode" type="System.Web.StaticFileHandler"/> </handlers></system.webServer>