如果我有一个类似"/something/something/"
的网址且我的网站为http://mysite.com
并且我想要链接到那个网址,那么是否有类似Url.Content();
的方法会发现虚拟目录IIS中的站点并正确映射到URL路径?
我尝试了Url.GenerateContentUrl(), Url.Action(), Url.Content(), Url.RouteUrl()
答案 0 :(得分:8)
是否有像Url.Content();
这样的方法
为什么喜欢,如果有Url.Content
?
var url = Url.Content("~/something/something");
将负责虚拟目录名称,如果您的一方部署在根http://example.com
,它将返回/something/something
,如果您有一个虚拟目录http://example.com/applicationname
,它将返回{ {1}}。
因此,每当您需要链接静态资源时,您应始终使用/applicationname/something/something
。例如:
Url.Content
无论您的网站部署在何处,都将始终正确解析图片网址。
答案 1 :(得分:1)
如果出于某种原因,您不能仅使用Url.Content,则可以使用HostingEnvironment.ApplicationVirtualPath或HttpContext.Current.Server.MapPath代替。
但我想不出一个很好的理由你不能只使用Url.Content。
答案 2 :(得分:0)
这就是我的假设:
您网站上的根目录中有myfile.jpg
这样的文件。然后你想要一个像:
http://mysite.com/myfile.jpg
右?
您需要做的就是在Global.asax.cs
中添加此路线:
routes.IgnoreRoute("myfile.jpg");
是的,它也适用于子文件夹。