JSP页面中外部文件路径,AJAX的请求地址(:url)到底该怎么写呢?

文件目录结构分布:

当前所在文件为:web/test/hello.jsp

-------------------------------------------------------------------------------------------------------------------

相对路径引用外部文件----错误

<script src="js/common/jquery-1.10.2.min.js"></script>  [web/js/common/...]

严格上相对引用应该写成这样:

<script src="./js/common/jquery-1.10.2.min.js"></script>

ajax的url:
url:'test/hello'
此时属于相对引用,显然不能得到结果.因为test下没有js/common/...
error:
http://localhost:8085/TestURL/test/js/common/jquery-1.10.2.min.js 
-------------------------------------------------------------------------------------------------------
绝对路径引入外部文件:----错误

<script src="/js/common/jquery-1.10.2.min.js"></script>

ajax的url:
url:'/test/hello'
此时属于绝对引用,显然不能得到结果.因为此时网站下没有js/common/...(注意文件夹web不是web应用的名字,web应用的名字是
TestURL,此时/表示和web应用平级的路径
error:
http://localhost:8085/js/common/jquery-1.10.2.min.js 
-------------------------------------------------------------------------------------------------------
相对路径引入外部文件:----正确
<script src="../js/common/jquery-1.10.2.min.js"></script>
此时相当于在上一步的基础上,在cd..到上一级路径,然后在选择js/common/...
-------------------------------------------------------------------------------------------------------
但是往往可以看到直接按照第一种的相对路径写,结果也是正确的!!

<script src="js/common/jquery-1.10.2.min.js"></script>

原来是jsp页面用到了一个<base>标签
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
  String path = request.getContextPath();
  String basePath = request.getScheme() + "://"
          + request.getServerName() + ":" + request.getServerPort()
          + path + "/";
%>
<!DOCTYPE html>
<html lang="zh-cn">
  <head>
    <base href="<%=basePath%>">
----正确,另外本质上说组合起来这是一种绝对路径引用
------------------------------------------------------------------------------------------------------

<base> 标签为页面上的所有链接规定默认地址或默认目标。

通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白。

使用 <base> 标签可以改变这一点。浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。

这其中包括 <a>、<img>、<link>、<form> 标签中的 URL。








  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值