2010-02-26 61 views
5

ASP.NET会自动包含以下script标签:更改WebResource.axd的URL

<script src="/WebResource.axd?d=8H_C0aee9xE8e9a-3YoRhA2&amp;t=633413907763620168" type="text/javascript"></script> 

但是客户端网站正在通过其他网站代理。因此,URL到他们的站点的根目录是:

http://domain.com/somename/ 

所以我需要前缀/ somename的WebResource.axd的,因此产生的代码看起来像这样:

<script src="/somename/WebResource.axd?d=8H_C0aee9xE8e9a-3YoRhA2&amp;t=633413907763620168" type="text/javascript"></script> 

我不是什么当然是如何真正设置这个?有没有一个web.config设置,我可以设置,所以它有这个前缀?

回答

2

我觉得这个功能Response.ApplyAppPathModifier(“You path”);可以为你做的工作。

Global.asax中

protected void Application_PreRequestHandlerExecute(object sender, EventArgs e) 
{ 
    string HereIsMyFileName = HttpContext.Current.Request.RawUrl; 

    if HereIsMyFileName contains the "webresource.axd" 
    then change it to what ever you like using 
     Response.ApplyAppPathModifier("You path"); 

希望这有助于。

+0

没't为我工作,然后使用解决方案类似于http://stackoverflow.com/questions/5536536/change-the-requested-url-of-webresource-axd – anre 2014-09-23 12:32:13

+0

@谢谢你的信息。我看到你注意到的答案,并且我从不去那里,扫描并替换整个页面的html作为字符串。太多的内存,时间,如果你改变别的东西,可能会出错。现在我不知道为什么这不适合你,它的4年回答....如果我找到时间我会检查出来。 – Aristos 2014-09-23 12:49:32

1

嗯,你在这里很麻烦。反射器肯定地显示这是硬编码的,不能改变。

您唯一的选择是找到解决方法。例如,您可以创建一个筛选器(HttpFilter),它将用适当的地址替换“WebResource.axd”。

我能想到的另一件事 - 如果你控制代理服务器,你可以让它过滤出这样的请求,并根据引用来适当地重定向它们。

祝你好运。