首页 新闻 会员 周边 捐助

iis7.0 伪静态后 css文件和 图片文件都访问不了 asp.net

0
悬赏园豆:15 [已解决问题] 解决于 2013-02-05 16:38

环境iis7.0

1.伪静态部署后

2.使用(css+js)Combres合并后..

 

静态图片访问不了了... 比如css文件, jpg,png等等 静态资源都显示不了。

例:路径格式/style/img/logo.png

 

如果浏览器中直接域名访问图片:

  显示如下错误

 

“/”应用程序中的服务器错误。


 

没有为扩展名“.png”注册的生成提供程序。可以在 machine.config 或 web.config 中的 <compilation><buildProviders> 节注册一个。请确保所注册的提供程序具有包含值“Web”或“All”的 BuildProviderAppliesToAttribute 特性。

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Web.HttpException: 没有为扩展名“.png”注册的生成提供程序。可以在 machine.config 或 web.config 中的 <compilation><buildProviders> 节注册一个。请确保所注册的提供程序具有包含值“Web”或“All”的 BuildProviderAppliesToAttribute 特性。

源错误:

执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

 

求高手 解答下...谢谢 

猜的主页 | 初学一级 | 园豆:180
提问于:2013-02-05 14:36
< >
分享
最佳答案
0

因为*映射是把所有的文件都要交给url称谢程序去处理,这样就会造成会把站点下的图片以及css或者一些下载的rar等文件都要去处理,造成性能不佳

解决办法:

方法1,把存放图片所在的文件夹转化成一个虚拟目录,在然后移处该虚拟目录*.*的映射,这样一来他的url重写程序就不会去处理图片文件,当然存放别的不需要url重写程序的文件也要象图片文件夹做类似的处理。 虚拟目录设置办法:在iis站点--右击该目录--属性--目录--创建--配置,在弹出窗口内删除:通配符应用程序映射(执行顺序)下添加的*.*的映射即可。 方法2,把不需要*.*映射的文件夹设置新站点和原来的站点分开,这样在原来的站点访问的时候用 新站点的域名即可。比如把图片设置站点http://images.abc.com/ 这样在http://abc.com/站点访问图片的时候就必须使用http://images.abc.com/图片名称.gif,这样就避免了所有问件处理。 以上两种方法即可提高不少速度,当然第一种更方便。

收获园豆:15
Rich.T | 老鸟四级 |园豆:3440 | 2013-02-05 15:16

哥们 我用的是第一种方法,将相应的静态目录 右键替换为应用程序...然后删除,每个虚拟目录中的 重写映射...然后 OK 了

非常感谢啊呀 .... 

| 园豆:180 (初学一级) | 2013-02-05 16:39

@猜: 你好,您是怎么解决的呢,求帮忙,这个问题也困扰我好几天了。

AStronghcm | 园豆:313 (菜鸟二级) | 2013-12-24 11:28

@AStronghcm: 我将不需要url重写该的目录转化成了虚拟目录,然后可以右键“虚拟目录”删除那些从根级站点继承过来的“url重写配置”。

| 园豆:180 (初学一级) | 2013-12-26 23:51

@AStronghcm: 

 我将不需要url重写的目录转化成了虚拟目录,然后可以右键“虚拟目录”删除那些从根级站点继承过来的“url重写配置”。

| 园豆:180 (初学一级) | 2013-12-26 23:53

@猜: 您好,可否加您Q,我Q:313355876   这个还是不怎么明白。

AStronghcm | 园豆:313 (菜鸟二级) | 2013-12-27 09:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册