2010-02-26 64 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」。

我能想到的另一件事 - 如果你控制代理服務器,你可以讓它過濾出這樣的請求,並根據引用來適當地重定向它們。

祝你好運。