如何在Application_Start期间确定给定的虚拟路径在域内?
// Cross domain virtual path
"//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"
// In app domain virtual path
"~/scripts/jquery/1.11.0/jquery.min.js" is not.
修改:
我可以使用
VirtualPathUtility.IsRelative()
答案 0 :(得分:2)
不确定您要做什么,但您可以测试并查看该文件是否确实存在:
if (File.Exists(Server.MapPath(path)))
{
//file is on the server
}
更新:如果您可以使用VirtualPathUtility.IsRelative()
来回答您的问题:是的,您可以。每MSDN:
返回一个布尔值,指示是否指定虚拟路径 与申请有关。
与我上面显示的不同之处是File.Exists
如果文件实际上不存在则会返回false。对于相对的路径,VirtualPathUtility.IsRelative()
将返回true,无论文件是否存在。
您使用的内容取决于您要完成的任务,这一点并不十分明确。
答案 1 :(得分:0)
你不能。
因为在Application_Start期间没有路径
Application_Start会在应用程序启动之前触发并处理页面,特别是在发送任何HTML之前。
顺便说一下,你所谈论的路径是并且必须是HTML输出的一部分....这是在视图中....这是非常非常非常非常非常非常早的处理。
为此,您首先需要确定需要运行控件的视图,该控件需要对需要启动应用程序的请求进行分析和路由 - 而最后一部分是您想要了解输出的位置。