从ASP.NET WebResource.axd库服务器端检索Javascript文件?

时间:2011-08-01 22:12:17

标签: asp.net webforms webresource.axd

我想在ASP.NET(C#4.0经典webforms)上组合我们的Javascript脚本。

我不能直接使用默认的脚本组合,因为我们从数据库中提供了一些Javascript,所以我编写了一个自定义HTTP处理程序,它从我们的数据库和我们的文件系统中提取组合脚本。一切都很好。

但是,我想要做的还是获取我的脚本组合中包含的webresource.axd文件。但我无法弄清楚如何获得JS应该包含在服务器端的内容。

所有结合我从谷歌搜索中看到的示例代码的脚本都会从服务器中单独生成一个httprequest来获取必要的webresource javascript,但我觉得这会导致服务器额外的网络出现不必要的失败点调用。有没有人知道如何加载webresource.axd正在使用的任何dll,并直接询问它的javascript,而无需通过HTTP请求?

(即,给予像/WebResource.axd?d=ir4-Z9VuAfKFCpBYqwpW4UCZ5rikwuzHb4bm5jdsmLoOFF7uCN45KR_x8kqIYoSdVC6mbX9QXLmLqIWGjP0VgFKGVlY1&t=634407077185129362,我怎么把它转换成文本的Javascript,未做一个HttpRequest?)

(我假设ASP.NET正在做一些奇特的事情,例如检测客户端浏览器类型或语言以便为不同的浏览器提供不同的JS。如果它像手动加载文件一样简单并将其缓存在我们的文件系统中'因为文件永远不会改变,然后我会感到愚蠢,但请让我知道。)

1 个答案:

答案 0 :(得分:0)

http://support.microsoft.com/kb/319292

Assembly.GetManifestResourceStream似乎是获取实际文本的答案,但我需要一个资源名称才能使用它。我知道如何从资源名称转到webresource网址(page.ClientScript.GetWebResourceUrl),但我不知道如何向另一个方向发展。需要重新架构以传递一个更高级别的信息,即资源名称而不是URL。