前两周在做Web控件,发现WebResource还是不错的东西,特别是应用在控件上资源。这样就不用关心路径问题了。当然这还是要付出性能代价的。以下摘抄一下别人的Blog,以备以后自已查用:
ASP.net 2.0 中 WebResource.axd 管理资源的一些知识点
http://blog.joycode.com/ghj/archive/2008/01/14/113719.aspx
在 ASP.net 2.0 构建的Web页面中,查看源文件,我们经常会看到下面的Html文本
<script src="/WebResource.axd?d=QfRKDnWw93T08KaF3ioSKQ2&t=633313193233609691" type="text/javascript"></script>
<script src="/WebResource.axd?d=9iVKU5SS0wd5al1SYg8zjL8XXbP97LbENHerY4aLtJk1&t=633313193233609691" type="text/javascript"></script>
这是 ASP.net 2.0 提供的新的资源管理方式产生的脚本。
新的资源管理方式如何使用,你可以参看以下几篇博客:
使用ASP.NET 2.0提供的WebResource管理资源
http://birdshome.cnblogs.com/archive/2004/12/19/79309.html
在自定义Server Control中捆绑JS文件 Step by Step
http://www.cnblogs.com/jackielin/archive/2005/11/29/286570.html
使用 ASP.NET 2.0 中 Web 资源
http://support.microsoft.com/kb/910442
在.NET 1.1下实现WebResource.axd
http://www.cnblogs.com/yeahooh/archive/2007/07/27/833846.html
使用 WebResource管理资源时, 我们会经常收到类似下面的异常:
System.Web.HttpException: 无效的视图状态。
System.Security.Cryptography.CryptographicException: 填充无效,无法被移除。
比如下面几个文章就提到了这个问题:
Annoying CryptographicException on WebResource.axd
http://forums.asp.net/t/934913.aspx
ASP.Net’s WebResource.axd and machineKey badness
http://blog.aproductofsociety.org/?p=11
这是因为 WebResource.axd URL 的参数具有时效性,但是对于搜索引擎的爬虫来说,他们会经常访问这些参数过期的地址,所以就会出现上面的异常。
这个问题的解决方案,目前没有更好的方案,微软论坛中只是建议在robots.txt 文件中增加下面的信息:
User-agent: *
Disallow: /*.axd$
但是这要求遵循 robots.txt 规范的爬虫们下次获得