【问题标题】:Absolute path & Relative Path绝对路径和相对路径
【发布时间】:2010-09-15 23:00:13
【问题描述】:

在使用任何 Web 服务器或 Tomcat 时,绝对路径和相对路径有什么区别?

【问题讨论】:

    标签: tomcat path relative-path


    【解决方案1】:

    绝对路径以 / 开头,指向当前站点(或虚拟主机)根目录的位置。

    相对路径不以 / 开头,并且从所引用的文档的实际位置引用一个位置。

    例子,假设root是http://foo.com/site/

    绝对路径,无论我们在网站的哪个位置

    /foo.html
    

    将参考http://foo.com/site/foo.html

    相对路径,假设包含链接位于http://foo.com/site/part1/bar.html

    ../part2/quux.html
    

    将参考http://foo.com/site/part2/quux.html

    part2/blue.html
    

    将参考http://foo.com/site/part1/part2/blue.html

    【讨论】:

      【解决方案2】:

      需要注意的是,相对路径也是主观的。

      即:

      <?php 
        #bar.php
        require('../foo.php'); 
      ?>
      
      /dir/bar.php /foo.php # 打印一个 /dir/foo.php # 打印 b /dir/other/ # 空目录 $密码 > / $ php 目录/bar.php > / + ../foo.php == /foo.php > 打印一个 $ cd 目录 $ php bar.php > /dir + ../foo.php = /foo.php > 打印一个 $ cd 其他 $ php ../bar.php > /dir/其他 + ../foo.php = /dir/foo.php > 打印 b

      这可能会造成一些相当混乱的情况,特别是如果您有许多具有相关引用的文件和多个可能的位置,这些位置可以充当控制相对路径相对于什么的“入口点”。

      在这种情况下,应该根据一个固定的已知值手动计算绝对路径,即:

      <?php
          require( realpath(dirname(__FILE__) . '/../foo.php') )
      

      <?php
         require( SOMECONSTANT . '/relative/path.php'  ); 
      

      <?php
         require( $_SERVER['DOCUMENT_ROOT'] . '/relative/path.php' );
      

      【讨论】:

        【解决方案3】:

        通过反复试验,我确定 Tomcat 中路径的起点是 webapps 文件夹。

        换句话说,如果您的 Java 代码试图读取 ../somefile.txt,那么该文件的绝对路径将是 %TOMCAT_HOME%/webapps/../somefile.txt 即 %TOMCAT_HOME%/webapps/somefile。 txt

        【讨论】:

          猜你喜欢
          • 2013-07-14
          • 2010-12-17
          • 1970-01-01
          • 2011-06-30
          • 1970-01-01
          • 2012-01-11
          • 2013-04-17
          • 1970-01-01
          • 2012-10-16
          相关资源
          最近更新 更多