在Javascript中获取网站根目录
假设我正在开发一个网站。我需要动态地获取根目录(website.com)(用于开发和生产)。有没有办法在JS中实现这一点 我正在服务器上使用asp.net mvc 3。是:请参阅: 引自链接: 您可以连接位置协议和主机: var root=location.protocol+'/'+location.host; 对于url,假设为“”,它将返回“”在Javascript中获取网站根目录,javascript,asp.net-mvc,path,Javascript,Asp.net Mvc,Path,假设我正在开发一个网站。我需要动态地获取根目录(website.com)(用于开发和生产)。有没有办法在JS中实现这一点 我正在服务器上使用asp.net mvc 3。是:请参阅: 引自链接: 您可以连接位置协议和主机: var root=location.protocol+'/'+location.host; 对于url,假设为“”,它将返回“” 我创建了一个函数来获取真正的根: function root() { var scripts = document.getEleme
我创建了一个函数来获取真正的根:
function root() {
var scripts = document.getElementsByTagName( 'script' ),
script = scripts[scripts.length - 1],
path = script.getAttribute( 'src' ).split( '/' ),
pathname = location.pathname.split( '/' ),
notSame = false,
same = 0;
for ( var i in path ) {
if ( !notSame ) {
if ( path[i] == pathname[i] ) {
same++;
} else {
notSame = true;
}
}
}
return location.origin + pathname.slice( 0, same ).join( '/' );
}
加载js文件时调用此函数一次。要使其工作,必须将其作为js文件包含 用法: 以下是一些例子:
location.host: 'http://test.com'
location.path: '/myapp/controller/action/id'
这将导致:
http://test.com/myapp
您可以使用ajax调用从服务器获取它。您是否更改了问题?我以为你问了一个JS问题,但也许你想要一个asp.net的答案?对于主机:
Request.Url.host
虽然这适用于这个特定的问题(root保证等于主机名),但它没有解决在其他情况下如何直接获取根Url的问题。
http://test.com/myapp