首页 > 其他分享 >js 路径

js 路径

时间:2022-11-25 22:39:01浏览次数:35  
标签:src ext2 adapter 路径 js ext base


在tomcat中发布,应用程序目录是这样的
-webapp
|-web-root  目录
---login.jsp 文件
|--ext2      目录
----ext-all.js  文件
|---adapter  目录
|----ext      目录
-----ext-base.js 文件
我的同事写的login.jsp,需要引用ext的js库,文件内容如下:
...............................................
<script type="text/javascript" src="/ext2/adapter/ext/ext-base.js"> </script>
<script type="text/javascript" src="/ext2/ext-all.js"> </script>
.............................................
从相对路径上讲是正确的,但是访问页面时发现实际上服务器找不到这两个文件——这点原因肯定,
我把他修改成
.............................................................
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
................................................................
<script type="text/javascript" src=" <%=basePath%>ext2/adapter/ext/ext-base.js"> </script>
<script type="text/javascript" src==" <%=basePath%>ext2/ext-all.js"> </script>
.............................................
就可以了
但是问题是,我的同事说他以前这样写是可以的,但是不知道为什么现在这样写不行了,我实在说不服他,而且因为从理论上讲,为什么相对路径是正确的,但是服务器又找不到呢?从实现原理上我也讲不清楚
我google了一下,发现有人似乎有相同的问题,但是说不清楚,所以请教明白之人点破一下


如果在head中设置了basePath,则每次路径都得从basePath下开始数,如果没设置basePath,则就用一般的相对路径;


但是我建议你不设置basePath,每次都从项目根文件夹下取路径(如/PROJECT/index.jsp).


js要用相对路径,也就是你调用js方法那个JSP文件相对于js文件的路径



<script type="text/javascript" src="adapter/ext/ext-base.js"> </script> <script type="text/javascript" src="ext2/ext-all.js"> </script>


这样写!


src="/ext2/adapter/ext/ext-base.js"


这实际上是绝对路径,当然,这个绝对路径并不是文件系统中的绝对路径的含义,


在WEB中,相对路径是不以“/”开头的,“/”开头,就是绝对路径。


之所以用这样的路径找不到,是因为


src="/ext2/adapter/ext/ext-base.js"


这句话,是被浏览器解析的,浏览器并不理解WEB应用的上下文,它只能理解它所访问网站的


ip和端口,这样,对浏览器来说:


“/”==“http://ip:port/”


而我们写的web应用,通常都还有一个context,也就是应用名(request.getContextPath()),


如果不指定,是无法找到资源的。


所以:


src="/ext2/adapter/ext/ext-base.js"


相当于


src="http://ip:port/ext2/adapter/ext/ext-base.js"


无法找到


而:


src=" <%=basePath%>/ext2/adapter/ext/ext-base.js"


相当于:


src="http://ip:port/应用名/ext2/adapter/ext/ext-base.js"


可以找到。


你同事原来可以找到,


有可能他原来的应用直接在ROOT下或者被映射到了tomcat的根,


也就是访问的时候,port后没有应用名。


我直接写的js也出现这样的问题


标签:src,ext2,adapter,路径,js,ext,base
From: https://blog.51cto.com/u_15834343/5887915

相关文章

  • C语言实现最简单的2048存档读档功能(获取当前路径和文件IO)
    简介最近大一的学弟开始布置C语言的大作业了,于是在此提供一种比较简单的2048存档读档功能的实现1获取当前目录及存档文件记得自己大一的时候在这里研究了很久,在这里提......
  • 深和jsonp【转】 jsonpk跨域问题详解
    取不到数据!上周客户新买了服务器,原本在旧的服务器上放着客户的Web主页信息和一个后台程序(asp.net),在客户的主页中有一个动态显示最新消息的处理,这个处理就是通过ajax异......
  • ExpressJS入门指南
    六、使用express(1)产生应用Express框架绑定了一个可执行脚本,名为express(1)。如果使用npm对Express框架进行全局安装,那么express到处都能使用。>npminstall-gexpressex......
  • Express是Node.js上最流行的Web开发框架。
    Express用起来让我想起来去年12月的时候折腾的RubyonRails,那时候折腾了一个周,写了一个半成的博客程序,号称“15分钟打造一个博客系统”大概就是Rails的特色了吧。不过Expre......
  • 浏览器直接修改网站的js代码
    1.按下F12打开控制台,找到源代码,然后是替换2.在本地创建一个文件夹,会提示风险,点击允许3.再找到你要修改的js文件代码,右击选择保存并覆盖这样代码会保存到你刚刚创......
  • 【大一C语言项目】Cjson的认识与实现(一)
    【大一C语言项目】Cjson的认识与实现(一)一、初识json参考网站​​​菜鸟教程:JSON​​​​JSON介绍​​​​JSON在线解析​​JSON是什么JSON指的是JavaScript对象表示法(Jav......
  • 利用canvas+js完成滑块验证码中canvas部分思路
    1.最终效果2.滑块验证码思路大概思路:设置两个画布,一个为显示图像的canvas画布,一个为拼图的block画布,block画布拼图内容从图像画布中的一部分裁剪得到(使用clip()),......
  • [JS DOM&BOM] 排他思想及其案例
    [JSDOM&BOM]排他思想排他思想算法框架<body><button>按钮1</button><button>按钮2</button><button>按钮3</button><button>按钮4</button><button>......
  • [JS DOM&BOM]自定义属性的操作
    [JSDOM&BOM]自定义属性的操作操作获取属性值element.属性获取内置元素的属性值(元素本身自带的属性)element.getAttribute(‘属性’);主要获得自定义的属性(标准)设置属性值e......
  • 【大一C语言项目】Cjson的认识与实现(二)
    【大一C语言项目】Cjson的认识与实现(二)参考资料:​​​哔哩哔哩CJson开源库使用及注意事项​​​​CJson开源项目下载地址​​​​cJSON源码刨析​​一、使用Cjson库下载CJSO......