zoukankan      html  css  js  c++  java
  • web项目中,视图层中关于相对路径和绝对路径

    1.在jfinal项目中

      因为一直使用的jfinal,没感觉路径问题。

      举个栗子,项目名字叫做test.访问一个Controller的映射为/user/add.这样,在浏览器地址栏直接:localhost:8080/user/add就可以直接访问到add方法了。当然,这样需要通过配置不同的端口来发布不同的项目,不然肯定冲突了。端口指定项目的路径。

    比如:

    <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="test" reloadable="true" /> 

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />

     </Host>

      而之前学的ssh以及springmvc等,在tomcat中需要通过项目名识别项目。即localhost:8080/test/user/add。

      这是因为在jfinal中默认项目路径为/,然后项目中所有的路径都是相对项目的,即相对于test.

      所以,对于静态资源,web页面的引用js和img可以把webroot看做是/,比如图片位于webroot/img/1.jpg.在页面引用:/img/1.jpg.浏览器访问:localhost:8080/img/1/jpg.

         对于服务请求接口,直接:/user/add.浏览器访问:localhost:8080/user/add.

    2.一些测试

      /代表的是webapps。即tomcat中发布的默认根路径。

      所有的请求(静态资源也是请求)都要/test/请求相对于项目的路径。

      在html中:

          静态资源:等测试后再写,TODO--

      在jsp中:

          今天学习springmvc中,测试结果:

          静态资源:需要相对路径或者相对于项目路径或者绝对路径。举例:

    • 绝对路径:            
    1 <!-- 关于路径问题:/表示tomcat的webapps文件夹。如果/js/jq.js,控制台显示找不到localhost:8080/js/....肯定找不到,因为应该是test/js下的
    2         可以使用相对路径,这里因为设置了bashPath,就是项目即test,所以页面直接写相对于项目的路径,即:js/jq.....
    3      -->
    4   <script type="text/javascript" src="/test/js/jquery-1.8.2.min.js"></script>
    • 相对路径直接相对于本jsp的位置写就可以了。这个在涉及动态跳转就会失效。不可以。
    • 正常使用的是相对于项目路径,即在head处:
     1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     2 <%
     3 String path = request.getContextPath();
     4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
     5 %>
     6 
     7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     8 <html>
     9   <head>
    10     <base href="<%=basePath%>">
    11     <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
    12   </head>
    13 <body></body>
    14 </html>

        接口请求:

            同理,和静态资源加载一样,采用绝对路径的时候可以/test/user/add.

            推荐以及通常使用:在head出天价base标签,然后就可以这样请求接口:user/add

  • 相关阅读:
    前端iframe跨域传值笔记
    css 将第1/n行文本超出部分替换成省略号
    第一章:1-08、计算机网络中的主干网和本地接入网各有何特点?
    第一章:1-07、 计算机网络可从哪几个方面进行分类?
    第一章:1-06、 试将TCP/IP和OSI的体系结构进行比较。讨论其异同之处?
    第一章:1-05、试讨论在广播式网络中对网络层的处理方法。讨论是否需要这一层?
    第一章:1-04、为什么说因特网是自由印刷术以来人类通信方面最大的变革?
    第一章:1-03、试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。
    第一章:1-02、试简述分组交换的要点。
    第一章:1-01、计算机网络的发展可划分为几个阶段?每个阶段各有何特点?
  • 原文地址:https://www.cnblogs.com/woshimrf/p/4817074.html
Copyright © 2011-2022 走看看