`
pcajax
  • 浏览: 2163078 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

在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 的路径分析例子

    在"基于ArcGIS api for js的路径分析例子"中,我们需要完成以下步骤: 1. **设置地图基础:** 使用ArcGIS API创建地图对象,这里我们选择百度瓦片地图作为底图。这可以通过配置地图的basemap属性为自定义的瓦片服务...

    基于JavaScript的旅行路径规划算法设计与实现

    在旅行路径规划领域,JavaScript作为一种广泛使用的客户端开发语言,因其跨平台、易学习和丰富的库支持,成为构建交互式Web应用的理想选择。本项目聚焦于如何利用JavaScript设计和实现一个旅行路径规划算法,以帮助...

    【转】js实现弹出选择路径框

    标题中的“【转】js实现弹出选择路径框”指的是使用JavaScript编程语言来创建一个功能,让用户能够通过图形用户界面(GUI)选择本地文件系统的特定路径。在网页应用中,通常浏览器的安全策略不允许直接访问用户的...

    使用three.js实现室内路径规划demo

    使用three.js基于已有的路径和节点数据 使用d算法实现室内地图点选路径规划 具体效果参见我的博客:https://blog.csdn.net/u014529917/article/details/100424812

    three.js自定义路径漫游

    基于three.js封装的自定义漫游小代码,传入最少两点三维坐标,即可实现飞行漫游。

    DWR中JS的引用路径问题【前台web】

    ### DWR中JS的引用路径问题详解 #### 一、背景介绍 在Web开发中,JavaScript(简称JS)是前端开发的重要组成部分之一。Direct Web Remoting (DWR) 是一个强大的Java库,它使得JavaScript能够直接调用Java方法,极...

    基于JavaScript与python的路径规划demo设计与实现

    在本项目中,“基于JavaScript与Python的路径规划demo设计与实现”主要涵盖了两个核心编程语言——JavaScript和Python,以及它们在路径规划问题上的应用。这是一个跨语言的技术实践,旨在展示如何利用这两种语言的...

    arcgis api for javascript 实现动态轨迹

    arcgis api for javascript 实现动态轨迹(巡查轨迹)

    JS正确读取文件路径

    JS 正确读取文件路径 在进行 JSP 页面开发时,想要获取文件的路径,进行一些操作,常常会遇到由于 IE 安全性设置造成的不能正确读取文件路径的问题。下面将详细介绍该问题的解决方法。 问题描述 在 JSP 页面中,...

    arcgis js api最优路径分析

    本项目聚焦于利用ArcGIS JS API 实现最优路径分析,这是一种在网络图层中寻找成本最低、时间最短或者效率最高的路径的方法。这在物流配送、交通规划、紧急救援等诸多领域有着广泛的应用。 首先,我们要理解ArcGIS ...

    javascript文件中获取当前文件路径

    在开发javascript插件的过程中,我们有时候需要获取当前JS文件的路径,用于自动加载一些图片、CSS等外部资源,但是javascript文件中并没有像PHP那样的__FILE__常量来供我们取得当前文件路径

    js最短路径算法

    在JavaScript(简称js)中实现最短路径算法,可以帮助我们构建交互式的可视化应用,例如网页上的地图导航或游戏中的寻路系统。本篇文章将深入探讨如何使用js实现这一算法,并结合提供的文件`www.pudn.com.txt`和`...

    用浏览器JS做路径跟踪渲染

    2. `main.js`:主要的JavaScript代码,实现路径跟踪逻辑。 3. `shaders/`:存储GLSL着色器文件,定义了GPU上的计算过程。 4. `resources/`:可能包含纹理、模型或其他资源文件。 5. `styles.css`:CSS样式文件,用于...

    SoftUni_JS:SoftUni JavaScript路径

    "SoftUni_JS: SoftUni JavaScript路径"很可能指的是一个在线教育平台SoftUni提供的JavaScript学习课程或项目路径。SoftUni可能为学员提供了一条系统学习JavaScript的路径,包括基础语法、DOM操作、面向对象编程、...

    three.js算法寻路示例

    Three.js是一个流行的JavaScript库,它简化了WebGL的使用,使得开发者能够更容易地创建复杂的3D场景。在这个"three.js算法寻路示例"中,我们将探讨如何结合three.js、Vue框架以及几种路径寻找算法来解决3D环境中的...

    关于include标签导致js路径找不到的问题分析及解决

    在Web开发中,使用jsp:include标签和标签来引入其他JSP页面是一种常见做法,但这也可能引发一些路径问题,尤其是当涉及到JavaScript文件(js路径)时。本文将深入分析和解决使用include标签导致的js路径找不到的问题...

    ArcGISforjs网络分析之最短路径分析.zip

    在本文中,我们将深入探讨如何使用ArcGIS for JavaScript (ArcGIS for js)进行网络分析,特别是最短路径分析。ArcGIS for js是一个强大的JavaScript库,它允许开发人员在Web应用程序中集成地理信息系统(GIS)功能,...

    js弹出窗口 + 获取上传文件全路径

    本文将深入探讨"js弹出窗口 + 获取上传文件全路径"这一主题,这两个知识点是JavaScript在交互式用户界面设计中的关键部分。 首先,让我们来讨论"js弹出窗口"。在网页开发中,弹出窗口通常用于显示警告信息、确认...

    指定路径动态巡更漫游的小demo例子

    在IT行业中,Three.js是一个非常流行的JavaScript库,用于在Web浏览器中创建3D图形。它提供了丰富的功能,包括渲染3D模型、动画控制、光照处理等。本项目名为"指定路径动态巡更漫游的小demo例子",显然是利用Three....

    静态页面中js获取相对路径

    从给定的文件信息来看,标题和描述都指向了在静态页面中JavaScript(简称JS)如何获取相对路径的问题。这通常是在网页开发中常见的需求,尤其是当开发者需要动态地加载资源或者链接到其他页面时。下面,我们将深入...

Global site tag (gtag.js) - Google Analytics