web项目,美工和前台配合,页面路径访问问题

一、美工写页面使用相对路径,但后台使用项目的应用绝对路径,访问时会出现404或页面乱码的问题

目前的解决方法:在页面中添加base标签,指定当前页面默认的路径

base标签:为页面上的所有链接规定默认地址或默认目标,浏览器会使用 标签中指定的URL来解析所有的相对URL,base其实就是定义一个默认的地址和默认目标

举个例子:

<html>
<head>
<base href="http://static.cnblogs.com/" />
</head>
<body>
<img src="./images/logo_gray.gif" />
</body>
</html>

一个BUG
base标签最好不要动态写入,否则在Firefox和IE中会有一个小bug,比如对于页面http://localhost/static/test.html

但是目前我用的还是挺不错,没有什么问题。

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

测试:

1:放在base标签前面的link路径可以使用相对路径且是相对于当前路径,
但是放在其后面的link使用相对路径将是相对于base指定的路径。
2:使用了base标签后body中的链接的相对路径将是相对于base指定的路径。
3:使用了base默认目标后,之后的打开方式将采取base指定的方式打开,除非后面又显示定义了打开方式。
总结:base其实就是定义一个默认的地址和默认目标。在其后的链接元素都将起作用。

时间: 2024-12-11 15:37:38

web项目,美工和前台配合,页面路径访问问题的相关文章

Java Web项目里 classpath 具体指哪个路径

classpath路径指什么 只知道把配置文件如:mybatis.xml.spring-web.xml.applicationContext.xml等放到src目录(就是存放代码.java文件的目录),然后使用"classpath:xxx.xml"来读取,都放到src目录准没错,那么到底classpath到底指的什么位置呢? WEB-INF/classes目录存放src目录java文件编译之后的.class文件,xml.properties等资源配置文件,这是一个定位资源的入口. sr

Java Web项目--使用Servlet生成一个页面

为了生成一个servlet对应的网页.我们需要新建一个web.xml,其中将会放置servlet的相关信息.web.xml文件放置在WebContent/WEB-INF/目录下.(我们在Eclipe中新建一个Dynamic Web Project的时候一直点"next"的话会有提示"Generate web.xml deployment descriptor",勾选该选项会默认生成一个web.xml文件).我们需要配置两对映射关系,一对是servlet名和他对应的s

Java Web项目--使用JSP生成一个页面

我们使用了servlet生成了一个网页,但是可以看到使用servlet生成网页必须将网页的内容全部嵌入到Java代码当中,不是很方便.所以有没有什么办法是将Java代码嵌入到html代码中,而不是像servlet这样将html代码嵌入到Java代码中的呢.答案是使用JSP.JSP是使用类似"<% %>"括起来的一段嵌入到html中的Java代码.我们下面将展示使用一个jsp页面显示一个网页的效果.JSP页面的开头需要加上一行"<%@ page content

Eclipse中的Web项目自动部署到Tomcat

一.原因. 1.写java程序有一段时间了,但很久没用eclipse了,所以使用eclipse编写的web项目部署到tomcat 的方式也不是很清楚,下面记录一下将Eclipse 上的web项目自动部署到tomcat 上的方式: 二.部署问题 1.这里就有个问题,是怎么把Eclipse中的网站项目自动部署到tomcat中.在Eclipse中做的Web项目默认是不支持将项目发布到Web服务器上的,会发布到工作空间的某个目录下,因此无法在外部启动Tomcat来运行Web项目,只有打开Eclipse中

将Web项目War包部署到Tomcat服务器基本步骤(完整版)

1. 常识: 1.1 War包 War包一般是在进行Web开发时,通常是一个网站Project下的所有源码的集合,里面包含前台HTML/CSS/JS的代码,也包含Java的代码. 当开发人员在自己的开发机器上调试所有代码并通过后,为了交给测试人员测试和未来进行产品发布,都需要将开发人员的源码打包成War进行发布. War包可以放在Tomcat下的webapps或者word目录下,随着tomcat服务器的启动,它可以自动被解压. 1.2 Tomcat服务器 Tomcat服务器是一个免费的开放源代码

Eclipse中的Web项目自己主动部署到Tomcat

一.原因. 1.写java程序有一段时间了,但非常久没用eclipse了.所以使用eclipse编写的web项目部署到tomcat 的方式也不是非常清楚,以下记录一下将Eclipse 上的web项目自己主动部署到tomcat 上的方式: 二.部署问题 1.这里就有个问题.是怎么把Eclipse中的站点项目自己主动部署到tomcat中. 在Eclipse中做的Web项目默认是不支持将项目公布到Webserver上的,会公布到工作空间的某个文件夹下,因此无法在外部启动Tomcat来执行Web项目,仅

Eclipse新建web项目出现The superclass &quot;javax.servlet.http.HttpServlet&quot; was not found on the Java Build Path

Eclipse新建web项目出现The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 新建web项目后都,jsp页面顶端出现"红色"的报错信息:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path,经过仔细查看,原来是

java web项目启动时自动加载自定义properties文件

首先创建一个类 public class ContextInitListener implements ServletContextListener 使得该类成为一个监听器.用于监听整个容器生命周期的,主要是初始化和销毁的. 类创建后要在web.xml配置文件中增加一个简单的监听器配置,即刚才我们定义的类. Xml代码 <listener> <!-- lang: xml --> <description>ServletContextListener</descri

web项目开发实例

我的第一个web项目就是一个登陆的页面.主要的就是搭建服务器,配置Tomcat环境和eclipse开发.基本的源代码如下 login.jsp 1 <%@ page import="java.sql.*" language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC