zoukankan      html  css  js  c++  java
  • html base 又一重大发现

    base 一个曾经不记得的标签,虽然接触Javaweb这么久了,但是还有很多基础性的东西都被我忽略掉了,还有很多基础但实用的技巧应该没有被我发现,虽然不使用这些技巧对功能实现没有多大影响。但是,发现这些技巧的时候还是有一种醍醐灌顶的感觉的,这也许是我之前的无知造成的,若你已知,不好意思浪费了你的时间,若从我这里得知的,那我不胜荣幸!

    <base> 标签为页面上的所有链接规定默认地址或默认目标。
    通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白。
    使用 <base> 标签可以改变这一点。浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。这其中包括 <a>、<img>、<link>、<form> <script>等标签中的 URL。

    在jsp开发中,为了页面的复用,更健壮,更加的可移植,经常会在写img、form、script、link等这些标签的时候使用绝对路径,以降低之后目录改变等带来的影响:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
    	<link rel="stylesheet" type="text/css" href="<%=request.getContextPath() %>/styles.css">
    	<script type="text/javascript" src="<%=request.getContextPath() %>/jquery-1.8.0.js"></script>

    而使用base标签同样可以实现同样的功能,而不用去改变之前的相对地址:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=path+"/"%>">
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	<script type="text/javascript" src="jquery-1.8.0.js"></script>
    
    

    
    !注意
    

    新建jsp的时候,会默认有base这个标签,但是路径中包含了实际的端口等完整路径

    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

    ,这样有时候会有问题(路径是通过交换机虚拟映射的时候),我今天就在这里摔了跟头。更好的是要自己改写在html中base标签
    <base href="<%=path+"/"%>">不使用原来的basePath

    今天上线的时候遇到一个问题,就是端口是虚拟映射的;

    但是页面上使用了<base href="">,href中指出的是实际的端口号,所以就造成这个页面中加载js、css、image等时出错;
    不使用base或者base指向正确的路径;
  • 相关阅读:
    [转载]AXIS学习笔记
    [转]MQ(JMS) 的姊妹篇,Web service实践浅谈原理和用途
    [转]Oracle EXTRACT()函数与to_char() 函数
    [转]Webservice,基于Axis的最佳实践
    IIS出现The specified module could not be found解决方法
    转: ORA12560: TNS:protocol adapter error(TNS:协议适配器错误)
    PLSQL_案例优化系列_分析体系结构如何左右SQL性能(案例2)
    WebADI_数据验证3_建立基于Table的LOV验证(案例)
    PLSQL_案例优化系列_体会索引让SQL举步维艰的一面(案例6)
    PLSQL_案例优化系列_体会函数及位图索引与SQL优化(案例7)
  • 原文地址:https://www.cnblogs.com/vvch/p/4027568.html
Copyright © 2011-2022 走看看