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

int*_*man 3 asp.net

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

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

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

谢谢阅读.

Ale*_*lex 11

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

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

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

更多信息可以在这里找到:

  • 很好的答案. (3认同)