asp.net如何生成scriptResource.axd url?

时间:2010-04-29 20:48:44

标签: asp.net

我正在尝试确保在部署新版本的asp.net Web应用程序后,不会使用缓存中过时的images / js / css文件。

我目前正在研究这方面的问题。首先,我自己的所有脚本都是通过System.Web.UI.ScriptManager注册的,其中js文件的URL是正常的。所以,我已经将ScriptManager子类化,并在脚本url的末尾添加了?ver ='x.x.x.x'。对于使用普通网址的脚本,我没有看到任何问题,但总是有很多ScriptResource.axd引用,我担心这些脚本。

因此,举个例子,我可以说在我的下一个版本中我更新了AjaxControlToolkit dll。 scriptResource.axd url是否与前一个AjaxControlToolkit使用的url不同? scriptResources.axd对我来说看起来很时髦,所以我希望它们是用汇编的哈希生成的?我已经阅读了大量关于scriptResource.axd的文献,但我还没有找到关于这个主题的任何内容。有人有什么想法吗?

感谢阅读。

1 个答案:

答案 0 :(得分:11)

你是对的。资源URL的格式为WebResource.axd?d=encrypted identifier&t=time stamp value。 “d”代表请求的Web资源。 “t”是请求的程序集的时间戳,可以帮助确定资源是否有任何更改。

简而言之,第一个参数是加密的assemblyName + "|" + resourceName值(通过使用内部Page.EncryptString方法);第二个参数是最后一次写入汇编的刻度数(使用File.GetLastWriteTime方法)。

因此,使用下一个版本或程序集将更改资源URL(重建程序集和/或更改其版本)。

可在此处找到更多信息: