IIS6.0中.css,.js等文件无法通过IE下载问题
一直用windows2003中IIS6.0做web开发,从来没碰到过这个问题,直到昨天一个页面的样式表出了问题,
有张表单,在vs2005中样式是正常的,但是页面远行时却出问题了,于是在IE中直接输入xxx.css文件地址发现不能下载,
到此以为问题找到了,经过一番折腾,发现以前正常的站点多有这个问题,但是页面里的样式多是正确显示的.也就是说,当前页面样式不能显示不是IE中无法下载样式表的问题.
问题所在
-------------------------------
首先问题样式表我是下载网上的,我当前环境是IIS6.0 + Asp.net 2.0 ,默认情况下是以及utf-8来处理的,但是因为.css文件中有中文注解(gb2312)所以,导致样式出错,结论,尽量不要在js,css文件中使用中文,如果使用,请保持编码一致.
第二是样式不能下载问题,在不启用 IIS 站点属性->HTTP 头中的"启用内容过期"(最好重新启动IIS)后发现样式表在IE能正常下载了, 这个启用跟不启用的区别是,IIS发送,css,js等文件时是否在响应标头上加cache-control: no-cache,当直接在IE中输入.css文件时,会试图把这个文件下载到IE临时目录或者说cache里(注意数据已经下载到内存中了),但是由于这个目录的特殊性,在http响应头中有cache-control:no-cache时,它会拒绝保存css文件,因此就出现上面的问题.
因为我们做开发的需要在更改样式或js文件后,马上在运行中体现出来,所以必需启动这个,并且选择下面的"立即过期",但在站点正式运行时考虑性能问题我们需要将起设置为不启动,或者启动后,指定一个比较长的过期时间(具体看iis里的http头设置),当然IIS里的配置,只是在响应标头中加了上面这段代码以及具体过期时间等,具体是否缓存,还取决于用户的IE设置.
有张表单,在vs2005中样式是正常的,但是页面远行时却出问题了,于是在IE中直接输入xxx.css文件地址发现不能下载,
到此以为问题找到了,经过一番折腾,发现以前正常的站点多有这个问题,但是页面里的样式多是正确显示的.也就是说,当前页面样式不能显示不是IE中无法下载样式表的问题.
问题所在
-------------------------------
首先问题样式表我是下载网上的,我当前环境是IIS6.0 + Asp.net 2.0 ,默认情况下是以及utf-8来处理的,但是因为.css文件中有中文注解(gb2312)所以,导致样式出错,结论,尽量不要在js,css文件中使用中文,如果使用,请保持编码一致.
第二是样式不能下载问题,在不启用 IIS 站点属性->HTTP 头中的"启用内容过期"(最好重新启动IIS)后发现样式表在IE能正常下载了, 这个启用跟不启用的区别是,IIS发送,css,js等文件时是否在响应标头上加cache-control: no-cache,当直接在IE中输入.css文件时,会试图把这个文件下载到IE临时目录或者说cache里(注意数据已经下载到内存中了),但是由于这个目录的特殊性,在http响应头中有cache-control:no-cache时,它会拒绝保存css文件,因此就出现上面的问题.
因为我们做开发的需要在更改样式或js文件后,马上在运行中体现出来,所以必需启动这个,并且选择下面的"立即过期",但在站点正式运行时考虑性能问题我们需要将起设置为不启动,或者启动后,指定一个比较长的过期时间(具体看iis里的http头设置),当然IIS里的配置,只是在响应标头中加了上面这段代码以及具体过期时间等,具体是否缓存,还取决于用户的IE设置.