我在jsp中使用类似../XXX/XXX.css这样引入css外部文件可是加载不到,页面中的图片也是相对路径无法加载,可是页面内的js中使用相对路径改变图片src这样却能找到对应的图片,这是为什么?使用tomcat服务器并且设置了域名直接访问项目,求解

解决方案 »

  1.   

    你css里面的图片要相对于你css文件的路径
    而非全路径
      

  2.   

    这个没有问题~~同样的程序部署在resin下就访问正常
      

  3.   

    强烈建议楼主使用绝对路径。
    在jsp开头添加:
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme() +"://" + 
      request.getServerName() + ":" +
              request.getServerPort() + 
              path +"/";
    %>
    然后在<head>
    <base href="<%=basePath%>" />
    </head>这样你就可以用绝对路径了
    比如:<link href="css/gongwen/Estyle01.css" rel="stylesheet" type="text/css" />
    css 文件夹是放在WebContent下面
      

  4.   

    <%
    String path = request.getContextPath();
    String basePath = request.getScheme() +"://" +  
    request.getServerName() + ":" +
    request.getServerPort() +  
    path +"/";
    %>
    很重要,属于JSP Advanced版里的。值得研究!应该是因为这段代码造成的!看看你的页面里有没有?
      

  5.   

    相对路径理解错误了~~你CSS文件应该是相对于TOMCAT的启动程序目录的!
      

  6.   

    如果从Action中跳转,应该加上你引用的路径的<%=path %>/XXX/XXX/XXX.CSS
      

  7.   

    不是Action的话,直接xxx/xxx.css就行,不过最好用上面一种全路径吧
      

  8.   

    建议都写全路径  
    以下这段可以放到一个公共jsp里面
    <%@ page language="java" import="java.util.*"  contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="/struts-tags" prefix="s"%>
    <%
    response.setHeader("Cache-Control","no-store");
    response.setHeader("Pragrma","no-cache");
    response.setDateHeader("Expires",0);
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    request.setAttribute("basePath", basePath);%>然后引入时就写 <script src="${basePath}admin/js/jquery-1.4.4.min.js"></script>
      

  9.   

    <%=basePath%>+ 你的路径
      

  10.   

    两种方式,一个是<%=basePath%>,另外一个是用“.”,代表的是当前工程