js中如何获取项目根目录

yl_521 2016-12-21 03:21:40
下面这个代码是网上找到的获取项目根目录的方法,在本地调试时是可以的。
但是在网站发布到服务器后,这个方法就不行了,因为发布后根目录不带项目名,所以必须用return (localhostPath);才可以。
但每次发布后要调整这个返回值很麻烦,怎么判断一下才可以让这个方法不论在本地调试还是发布后都好使呢?

function getRootPath() {
//获取当前网址,如: http://localhost:8088/test/test.jsp
var curPath = window.document.location.href;
//获取主机地址之后的目录,如: test/test.jsp
var pathName = window.document.location.pathname;
var pos = curPath.indexOf(pathName);
//获取主机地址,如: http://localhost:8088
var localhostPath = curPath.substring(0, pos);
//获取带"/"的项目名,如:/test
var projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1);
return (localhostPath + projectName);//发布前用此
}
...全文
1234 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 楼主 yl_521 的回复:
下面这个代码是网上找到的获取项目根目录的方法,在本地调试时是可以的。 但是在网站发布到服务器后,这个方法就不行了,因为发布后根目录不带项目名,所以必须用return (localhostPath);才可以。 但每次发布后要调整这个返回值很麻烦,怎么判断一下才可以让这个方法不论在本地调试还是发布后都好使呢?

function getRootPath() {
    //获取当前网址,如: http://localhost:8088/test/test.jsp
    var curPath = window.document.location.href;
    //获取主机地址之后的目录,如: test/test.jsp
    var pathName = window.document.location.pathname;
    var pos = curPath.indexOf(pathName);
    //获取主机地址,如: http://localhost:8088
    var localhostPath = curPath.substring(0, pos);
    //获取带"/"的项目名,如:/test
    var projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1);
    return (localhostPath + projectName);//发布前用此
}
http://www.abc.cn:8080/test.php?user=admin&pwd=admin#login 想得到整个如上的完整url,用:location.href; 得到传输协议http:,用:location.protocol; 得到主机名连同端口www.abc.cn:8080,用:location.host; 得到主机名www.abc.cn,用:location.hostname; 得到主机后部分不包括问号?后部分的/test.php,用:location.pathname; 得到url中问号?之后井号#之前的部分?user=admin&pwd=admin,用:location.search; 得到#之前的部分#login,用:location.hash;
当作看不见 2016-12-21
  • 打赏
  • 举报
回复
嗯,你本地的会有localhost或者是ip 地址127.0.0.1 ,上线了,会有域名嘛,不是域名就判断为本地咯
yl_521 2016-12-21
  • 打赏
  • 举报
回复
引用 1 楼 qq_29594393 的回复:
判断一下当前环境。获取localhost.href ,根据值,判断出环境,执行不同的方法获取项目根目录
您的意思是根据location.href的值判断当前环境吗? 假如本地调试,则有localhost这样的字符,是吗?
当作看不见 2016-12-21
  • 打赏
  • 举报
回复
判断一下当前环境。获取localhost.href ,根据值,判断出环境,执行不同的方法获取项目根目录
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 ### 兴F420/F460/F660光猫超级密码配置及功能启用指南 #### 一、超级密码的获取与配置 对于兴F420/F460/F660系列光猫设备,可以通过特定的命令行接口方法来获取并配置超级密码。以下指南详细说明了这一过程的实现方法。 **步骤1:** 启动任意一种网络浏览器,并键入网址`http://192.168.1.1/web_shell_cmd.gch`以进入命令行操作界面。 **步骤2:** 输入指令`sendcmd1DBpUserInfo`(需注意指令间的空格和大小写格式),该指令用于查询当前登录所使用的用户名及密码。通常情况下,预设的用户名与密码为`telecomadmin/telecomadmin+数字`。 **步骤3:** 如果需要变更用户名,可以在命令行环境键入`sendcmd1DBsetUserInfo0Usernameadmin`(同样需注意空格和大小写),将用户名更改为`admin`。 **步骤4:** 继续输入`sendcmd1DBsetUserInfo0Passwordadmin`(同样需注意空格和大小写),将密码也设定为`admin`。 **步骤5:** 完成修改后,必须执行保存操作,通过输入命令`sendcmd1DBsave`(注意空格和大小写),以最终确认设置。 #### 二、远程控制功能的禁用 为了保障网络安全,防止未经授权的远程访问,应按照以下步骤禁用远程控制功能: **步骤1:** 再次启动网络浏览器并输入网址`http://192.168.1.1/web_shell_cmd.gch`。 **步骤2:** 键入指令`se...

87,988

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧