Абсолютный путь и относительный путь

Какая разница между абсолютным путем и относительным путем при использовании любого веб-сервера или Tomcat?

Ответ 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

Ответ 3

Важно отметить, что относительные пути также субъективны.

т.е.:

<?php 
  #bar.php
  require('../foo.php'); 
?>
/dir/bar.php 
/foo.php         # prints a 
/dir/foo.php # prints b 
/dir/other/   # empty dir
$ pwd 
>  /
$ php dir/bar.php 
>  / + ../foo.php == /foo.php   
>  prints a 
$ cd dir 
$ php bar.php
>  /dir  + ../foo.php = /foo.php 
>  prints a
$ cd other
$ php ../bar.php 
> /dir/other + ../foo.php  = /dir/foo.php 
> prints b

Это может создать некоторые довольно запутывающие ситуации, особенно если у вас много файлов с исходными ссылками и несколькими возможными местами, которые могут действовать как "точка входа", которая контролирует относительный путь относительно.

В таких ситуациях необходимо вычислить абсолютный путь вручную на основе фиксированного известного, то есть:

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

или

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

или

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

Ответ 5

Через пробную версию и ошибку я определил, что отправной точкой пути в Tomcat является папка webapps.

Другими словами, если ваш Java-код пытается прочитать.. /somefile.txt, тогда абсолютный путь к этому файлу будет% TOMCAT_HOME%/webapps/../somefile.txt, то есть% TOMCAT_HOME%/webapps/somefile. TXT