在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文件的路径
JScript code
<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也出现这样的问题
分享到:
相关推荐
在"基于ArcGIS api for js的路径分析例子"中,我们需要完成以下步骤: 1. **设置地图基础:** 使用ArcGIS API创建地图对象,这里我们选择百度瓦片地图作为底图。这可以通过配置地图的basemap属性为自定义的瓦片服务...
在旅行路径规划领域,JavaScript作为一种广泛使用的客户端开发语言,因其跨平台、易学习和丰富的库支持,成为构建交互式Web应用的理想选择。本项目聚焦于如何利用JavaScript设计和实现一个旅行路径规划算法,以帮助...
标题中的“【转】js实现弹出选择路径框”指的是使用JavaScript编程语言来创建一个功能,让用户能够通过图形用户界面(GUI)选择本地文件系统的特定路径。在网页应用中,通常浏览器的安全策略不允许直接访问用户的...
使用three.js基于已有的路径和节点数据 使用d算法实现室内地图点选路径规划 具体效果参见我的博客:https://blog.csdn.net/u014529917/article/details/100424812
基于three.js封装的自定义漫游小代码,传入最少两点三维坐标,即可实现飞行漫游。
### DWR中JS的引用路径问题详解 #### 一、背景介绍 在Web开发中,JavaScript(简称JS)是前端开发的重要组成部分之一。Direct Web Remoting (DWR) 是一个强大的Java库,它使得JavaScript能够直接调用Java方法,极...
在本项目中,“基于JavaScript与Python的路径规划demo设计与实现”主要涵盖了两个核心编程语言——JavaScript和Python,以及它们在路径规划问题上的应用。这是一个跨语言的技术实践,旨在展示如何利用这两种语言的...
arcgis api for javascript 实现动态轨迹(巡查轨迹)
JS 正确读取文件路径 在进行 JSP 页面开发时,想要获取文件的路径,进行一些操作,常常会遇到由于 IE 安全性设置造成的不能正确读取文件路径的问题。下面将详细介绍该问题的解决方法。 问题描述 在 JSP 页面中,...
本项目聚焦于利用ArcGIS JS API 实现最优路径分析,这是一种在网络图层中寻找成本最低、时间最短或者效率最高的路径的方法。这在物流配送、交通规划、紧急救援等诸多领域有着广泛的应用。 首先,我们要理解ArcGIS ...
在开发javascript插件的过程中,我们有时候需要获取当前JS文件的路径,用于自动加载一些图片、CSS等外部资源,但是javascript文件中并没有像PHP那样的__FILE__常量来供我们取得当前文件路径
在JavaScript(简称js)中实现最短路径算法,可以帮助我们构建交互式的可视化应用,例如网页上的地图导航或游戏中的寻路系统。本篇文章将深入探讨如何使用js实现这一算法,并结合提供的文件`www.pudn.com.txt`和`...
2. `main.js`:主要的JavaScript代码,实现路径跟踪逻辑。 3. `shaders/`:存储GLSL着色器文件,定义了GPU上的计算过程。 4. `resources/`:可能包含纹理、模型或其他资源文件。 5. `styles.css`:CSS样式文件,用于...
"SoftUni_JS: SoftUni JavaScript路径"很可能指的是一个在线教育平台SoftUni提供的JavaScript学习课程或项目路径。SoftUni可能为学员提供了一条系统学习JavaScript的路径,包括基础语法、DOM操作、面向对象编程、...
Three.js是一个流行的JavaScript库,它简化了WebGL的使用,使得开发者能够更容易地创建复杂的3D场景。在这个"three.js算法寻路示例"中,我们将探讨如何结合three.js、Vue框架以及几种路径寻找算法来解决3D环境中的...
在Web开发中,使用jsp:include标签和标签来引入其他JSP页面是一种常见做法,但这也可能引发一些路径问题,尤其是当涉及到JavaScript文件(js路径)时。本文将深入分析和解决使用include标签导致的js路径找不到的问题...
在本文中,我们将深入探讨如何使用ArcGIS for JavaScript (ArcGIS for js)进行网络分析,特别是最短路径分析。ArcGIS for js是一个强大的JavaScript库,它允许开发人员在Web应用程序中集成地理信息系统(GIS)功能,...
本文将深入探讨"js弹出窗口 + 获取上传文件全路径"这一主题,这两个知识点是JavaScript在交互式用户界面设计中的关键部分。 首先,让我们来讨论"js弹出窗口"。在网页开发中,弹出窗口通常用于显示警告信息、确认...
在IT行业中,Three.js是一个非常流行的JavaScript库,用于在Web浏览器中创建3D图形。它提供了丰富的功能,包括渲染3D模型、动画控制、光照处理等。本项目名为"指定路径动态巡更漫游的小demo例子",显然是利用Three....
从给定的文件信息来看,标题和描述都指向了在静态页面中JavaScript(简称JS)如何获取相对路径的问题。这通常是在网页开发中常见的需求,尤其是当开发者需要动态地加载资源或者链接到其他页面时。下面,我们将深入...