【问题标题】:Changing the WebResource.axd URL更改 WebResource.axd URL
【发布时间】:2017-11-08 21:38:35
【问题描述】:

ASP.NET 自动包含以下脚本标记:

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

但是,客户端站点正在通过另一个站点进行代理。所以他们网站根目录的 URL 是:

http://domain.com/somename/

所以我需要在 WebResource.axd 前面加上 /somename,这样生成的标签将如下所示:

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

我不确定如何实际设置它?有没有我可以设置的 web.config 设置,所以它有这个前缀?

【问题讨论】:

    标签: c# .net asp.net


    【解决方案1】:

    我认为这个函数 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");
    

    希望这会有所帮助。

    【讨论】:

    • 对我不起作用,然后使用类似于stackoverflow.com/questions/5536536/…的解决方案
    • @anre 谢谢你的信息。我看到了你记下的答案,我从来没有去那里扫描并替换整页 html 以获取字符串。如果您更改其他内容,太多的内存、时间和可能的错误。现在我不知道为什么这对你不起作用,它的 4 年答案....如果我找到时间我会检查一下。
    【解决方案2】:

    嗯,你在这里几乎搞砸了。 Reflector 毫无疑问地表明这是硬编码的,无法更改。

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

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

    祝你好运。

    【讨论】:

      【解决方案3】:

      您可以捕获输出流搜索/替换“/WebResource”与“WebResource”或您需要的路径...

      从这里尝试解决方案:Change the requested url of WebResource.axd

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-01
        • 1970-01-01
        相关资源
        最近更新 更多