我在运行在代理后面的asp.net mvc应用程序中遇到了路径问题。
例如,我们的iis应用程序根路径
http://server/MyApp/
这意味着使用应用程序根目录(“~/”,url.action(“myaction”,“mycontroller”)的所有url都解析为“/myapp”
现在,我们运行在一个代理服务器后面,该服务器转发所有请求,但要求您通过如下URL访问应用程序:
“/secury/proxy/rubbishurl/myapp”
因为代理url只在客户端可用,所以我想创建一个带有路径前缀的cookie,并在服务器上生成的每个url之前插入这个。
现在的问题是,代码中修改解析/发送到客户机(资源、控制器操作、图像等)的每个url的最佳位置是什么?
应用程序中的每个路径都用mvc方法(url.content、url.action等)解析。
更新:
不再积极寻找答案(尽管仍对正确的解决方案感兴趣)
大多数情况下,代理都会进行自己的url转换,但是在这种情况下,代理服务器会忽略用json传输的路径,并对其进行处理。
我现在的“解决方案”不是用json传递路径,而是:
-
在json请求中使用适当的id和值
-
在HTML中的URL中创建模板(已正确解析),
-
用json请求中的值替换url模板中的id和值
这个方法实际上是一种更“干净”的方式,然后传递url。