html 파일의 절대 경로입니다. 파일의 절대 및 상대 경로


귀하의 사이트는 말하자면 2차원으로 존재합니다.
현실과 가상.

모든 방문자에게 이것은 가상 웹 서버입니다. 무엇보다도 파일이 존재하지 않는다는 점에서 다릅니다. 당신이 쓴다면 %20" target="_blank">http://site.ru/file.html- 파일이 아닙니다. 이것은 가상 주소인 URI입니다. 서버에 file.html이라는 파일이 전혀 없을 수도 있습니다. 이들은 모두 파일이 아닌 가상 주소입니다.
그리고 브라우저는 특히 주소와 함께 작동합니다.

개발자에게 웹사이트는 매우 특정한 실제 컴퓨터에서 실행되는 프로그램입니다. 매우 구체적인 하드 드라이브, 디렉터리 및 파일이 있습니다. 그리고 데이터로 작업하고 다른 스크립트를 로드하는 스크립트는 실제 디스크의 실제 파일과 함께 작동합니다.

초보자가 자주 직면하는 어려움은 바로 이러한 차이에 있습니다.
파일을 잃어버리거나, 링크를 파일과 혼동하거나, HTTP를 통해 로컬 파일에 액세스하거나, 웹 서버 루트의 파일을 포함시킵니다.

하지만 다음 두 가지 사항을 명확하게 이해하면 됩니다.
1. 브라우저에 표시되는 웹 서버의 루트와 디스크의 파일 시스템 루트를 구별합니다.
2. 상대 경로와 절대 경로의 차이점.

두 번째부터 시작하겠습니다.
매우 간단합니다. 경로가 시스템 루트에서 지정된 경우 이는 절대 경로입니다. 이는 실제 우편 주소와 같습니다. 어디로 가든지 정확한 주소를 사용하면 항상 올바른 장소를 찾을 수 있습니다.
절대 경로의 예:
/var/www/site/forum/index.php
/img/frame.gif
출처:\windows\command.com

Unix 시스템과 웹사이트에서 루트는 슬래시("/")로 표시됩니다.
그건 중요해. 이것은 단순한 막대기가 아니라 독립적인 주소, 경로입니다.
주소에 %20" target="_blank">http://www.site.ru/마지막 슬래시는 아름다움을위한 것이 아닙니다! 이는 매우 구체적인 주소, 즉 사이트의 시작을 나타냅니다.
Unix 시스템의 디스크에서는 "cd /"를 입력하면 루트 디렉터리로 이동됩니다.
Windows 시스템에서는 파일 시스템이 디스크로 나누어져 있으므로 절대 주소는 디스크 이름을 나타내야 합니다. Windows에는 전체 파일 시스템의 절대 루트가 없습니다. 각 디스크에는 자체 루트가 있습니다. 예를 들어, C:\ E:\
따라서 Windows의 경로가 슬래시로 시작하더라도 절대 경로가 아니라 상대 경로입니다. 현재 디스크를 기준으로 합니다. 그리고 절대값은 문자로 시작됩니다.

경로 시작 부분에 루트가 지정되지 않은 경우 이 경로는 상대 경로가 되며 현재 위치에서 파생됩니다. 실제 생활에서는 주류 판매점으로 가는 길과 같습니다. "왼쪽으로 두 블록, 끝까지 직진하세요." 이 경로는 특정 지점에서만 도달할 수 있습니다. 다른 쪽에서 당신은 완전히 다른 장소에 있게 될 것입니다.
상대 경로의 가장 간단한 예는 단순히 파일 이름입니다.
파일이 프로그램이 작업 중인 동일한 디렉터리에 있는 경우 파일 이름에 현재 경로를 추가하여 해당 파일을 찾습니다.
상대 경로의 예:
file.php (파일은 같은 폴더에 있습니다)
./file.php (파일은 같은 폴더에 있습니다. 일부 Unix 시스템에서는 이러한 항목이 필요한 경우가 있습니다)
Images/picture.jpg (파일은 현재 이미지 폴더에 있습니다)
../file.php (파일은 현재 폴더보다 한 단계 높은 폴더에 있음)
../../file.php (파일은 현재 폴더보다 두 단계 높은 폴더에 있음)

운영 체제와 브라우저 모두 상대 경로를 만나면 절대 경로로 빌드합니다. 그러나 각자 자신의 방식으로.

이제 첫 번째 요점으로 넘어 갑시다.
브라우저에 표시되는 웹 서버의 루트와 디스크에 있는 파일 시스템의 루트 간의 차이입니다.
일반적으로 이전 설명을 통해 모든 것이 명확해집니다.
디스크에서 스크립트 파일의 경로는 다음과 같을 수 있습니다.
/var/www/site/forum/index.php
동시에 브라우저를 통해 볼 때 이 스크립트의 가상 주소는 다음과 같습니다.
%20" target="_blank">http://www.site.ru/forum/index.php
이 예에서는 두 차원이 교차하는 위치를 쉽게 확인할 수 있습니다. 두 주소에는 공통 부분(/forum/index.php)이 있으며 이것이 혼란의 원인입니다.
브라우저의 경우 이것이 가능한 가장 완전한 경로입니다. 사이트의 루트에서 시작됩니다.
서버에서 실행되는 스크립트의 경우 이는 경로의 일부일 뿐입니다.
스크립트의 경우 /forum/index.php 경로는 존재하지 않습니다. 디스크 루트에 포럼 디렉터리가 없습니다!
사이트에서 /forum/index.php와 같은 전체 경로를 얻으려면 전체 웹 서버의 루트로 간주되는 폴더의 경로를 왼쪽에 추가해야 합니다.
우리의 예에서는
/var/www/사이트
이 경로는 웹 서버 구성에서 설정되며 PHP 시스템 변수에 포함되어 있습니다. $_SERVER["DOCUMENT_ROOT"]

사용자가 보는 가상 서버에는 반대로 디스크가 없습니다. 사이트 루트가 있습니다. 즉, 링크가 작동하도록 보장하려면 링크가 호출되는 사이트 위치에 관계없이 절대적이어야 합니다.
예를 들어 웹사이트에 두 개의 섹션이 있는 경우:
%20" target="_blank">http://www.site.ru/about/info.php
그리고
%20" target="_blank">http://www.site.ru/job/vacancy.php
그런 다음 info.php 파일에서 단순히 vacancy.php에 대한 링크를 만들면 브라우저는 해당 링크를 찾지 못하고 주소를 찾습니다. %20," target="_blank">http://www.site.ru/about/vacancy.php, 현재 디렉터리에서 경로를 완성합니다.
따라서 사이트 루트(/job/vacancy.php)에서 전체 경로를 작성해야 합니다.
물론 이 모든 것은 태그에만 적용되는 것이 아닙니다. 뿐만 아니라 그리고 다른 파일에 대한 링크가 사용되는 기타 모든 것.

로컬 주소에 대한 링크는 프로토콜과 도메인을 지정하지 않고 작성해야 합니다. 사이트 루트의 경로만 - /job/vacancy.php. 다른 사이트에 대한 링크는 전체 내용을 작성해야 합니다. %20." target="_blank">http://www.site1.ru/job/vacancy.php .

PHP는 파일, 디렉토리, URL 작업을 위한 다양한 도구를 제공합니다.

__FILE__ 상수에는 현재 실행 파일의 이름이 포함됩니다.
PHP_SELF와 달리 현재 실행 중인 파일의 이름이 포함됩니다.
디자인은 정말 유용할 것 같아요 디렉토리 이름(__FILE__), 호출 스크립트와 동일한 디렉터리에 있는 파일에 대한 모든 호출을 바꾸는 것이 바람직합니다. 예를 들어:
dirname(__FILE__)이 필요합니다. "/init.php"
dirname() 함수는 basename()과 함께 파일 및 디렉터리 작업에 가장 일반적으로 사용되는 함수 중 하나입니다.

메모:
Windows에서 Unix 시스템으로 스크립트를 전송할 때 경로에 문제가 있는 경우 먼저 대소문자에 주의하세요. Unix 서버에서는 파일 이름의 문자 대소문자가 중요합니다. File.txt와 file.txt는 서로 다른 두 파일이지만 Windows에서는 동일합니다. 대/소문자를 고려하여 항상 파일 이름을 정확하게 작성하는 것이 가장 좋습니다.

아시다시피 태그의 href 매개변수에는 () 참조되는 파일의 경로를 지정해야 합니다.
많은 사람들이 http://somesite.ru/catalog/doc.html과 같은 것을 작성합니다. 예, 아무도 논쟁하지 않습니다. 작동합니다. 하지만 "그러나"가 하나 있습니다. 예를 살펴보겠습니다.

예를 들어 귀하의 사이트를 일부 무료 호스팅에서 호스팅하고 해당 주소는 다음과 같습니다: http://fsite.freehosting.ru.
서버에는 약 100개의 문서가 있습니다. 그래서 웹사이트를 다른 도메인으로 옮기기로 결정했습니다.
ru 영역(http://site.ru)에서 유료 호스팅을 하도록 하세요. 자, 이제 어디에서나 http://fsite.freehosting.ru를 http://site.ru로 바꿔야 할까요?
네, homesite와 같은 편집자들 덕분에 이것이 가능합니다. 그러나 이것은 해결책이 아닙니다.
페이지를 서버에 업로드하기 전에 페이지의 기능을 확인한다고 가정해 보겠습니다.
홈 아파치 서버에서(아직 "홈 서버"가 무엇인지 모르는 사람들을 위해 여기(아파치 서버 설치 및 구성)로 이동하고 http://localhost 대신 http://를 작성해야 합니다. site.ru는 어디에서나 이에 동의합니다. 적어도 불편합니다.

해결책은 파일 경로를 지정할 때 사이트에서의 위치가 아니라 서버에서의 위치를 ​​고려하는 것입니다.

절대 경로

예를 들어 http://somesite.ru/catalog/doc.html에 있는 doc.html 파일을 살펴보겠습니다. 아시다시피 서버에는 www 폴더가 있습니다. 주소에서 볼 수 있듯이 이 폴더에는 카탈로그 폴더가 포함되어 있으며 이미 doc.html 파일이 포함되어 있습니다.

파일 경로를 지정할 때 주소 앞에 /를 넣으면 다음과 유사합니다: root_directory_in_the_north/www/파일 경로.
즉, http://somesite.ru/catalog/doc.html은 /catalog/doc.html과 유사합니다.
따라서 주소 앞에 /가 있으면 www 디렉토리부터 "카운트다운"이 시작된다는 의미입니다.
이제 http://localhost/index.html 대신 모든 문서에서 /index.html을 작성할 수 있습니다.
그러나 cgi 디렉토리로 이동하려면 다음과 같이 작성해야 합니다: /cgi-bin/path to the file.

위에 설명된 방법을 사용하여 생성된 경로는 서버에 있는 파일의 절대(전체) 경로가 표시되므로 절대 경로라고 합니다.

상대 경로

링크가 나오는 문서 자체를 기준으로 지정되는 상대 경로도 있습니다.
예를 들어, doc.html newcat/new.html에 링크를 생성하면 new.html 파일이 newcat 디렉토리에 있고 이 디렉토리는 doc.html 파일과 동일한 디렉토리에 있음을 의미합니다. 보시다시피 이 경로는 doc.html 파일에 상대적입니다. 이 파일이 어디에 있든 doc.html 파일과 newcat 디렉터리가 동일한 수준(예: 동일한 디렉터리)에 있는 경우 newcat/new.html 경로는 항상 유효합니다.

문서를 기준으로 한 디렉터리 위로 이동할 수도 있습니다. 이렇게 하려면 ../.을 작성해야 합니다.
예를 들어, 큰 디렉터리가 있는데 여기에는 기본 디렉터리와 보조 디렉터리라는 두 개의 디렉터리가 포함되어 있습니다. 기본 디렉터리에는 이미 익숙한 doc.html 파일이 포함되어 있습니다. 보조 디렉토리에는 new.html 파일이 있습니다. doc.html 파일에서 new.html 파일로의 링크를 만들려면 ../secondary/new.html을 작성해야 합니다. 그러나 큰 디렉토리가 www 디렉토리에 있는 경우 new.html 파일의 경로는 /big/secondary/new.html과 같이 지정할 수 있습니다.

결론보다는 절대 경로와 상대 경로를 사용하면 초보자든 전문가든 웹 마스터의 작업이 크게 쉬워진다는 점을 언급할 가치가 있습니다. 따라서 그들이 말하는 것처럼 이 기회를 최대한 활용하고 http://site.ru/catalog/file.file과 같은 경로를 피하거나 최소한 도움을 최대한 적게 받으십시오.

좋다 나쁘다

여러분은 매일 데이터와 도구 세트를 찾는 경로를 접하게 됩니다. 이 섹션에서는 경로에 대한 자세한 설명을 제공하고 다양한 경로 유형을 정의하며 ArcGIS에서 해당 경로를 사용하는 방법을 보여줍니다.

방법

경로는 백슬래시로 구분된 디렉터리 또는 파일의 이름입니다. 디렉터리는 Windows 탐색기의 폴더와 동일합니다.

E:\Data\MyStuff(디렉토리 이름으로 끝나는 경로) E:\Data\MyStuff\roads.shp(파일 이름으로 끝나는 경로)

"pathname"과 "path name"이라는 두 가지 경로 철자가 나타날 수 있습니다. 모든 경로 철자(경로, 경로 이름 및 경로 이름)는 동의어입니다.

시스템 경로 및 디렉터리 경로

ArcGIS는 "카탈로그 경로" 또는 "ArcCatalog 경로"라는 용어를 사용합니다. 디렉터리 경로는 ArcGIS에서만 인식되는 경로입니다. 예를 들어:

D:\Data\Final\Infrastructure.gdb\EastValley\powerlines

인프라 파일 지오데이터베이스에 있는 EastValley 기능 세트의 전력선 기능 클래스를 나타냅니다. Windows는 파일 지오데이터베이스 내에 있는 기능 데이터세트 및 클래스를 인식하지 못하므로 이 경로는 운영 체제 관점에서 볼 때 유효한 시스템 경로가 아닙니다. 물론 ArcGIS는 디렉터리 경로와 함께 작동합니다.

작업공간 및 기본 이름

디렉터리 경로는 아래와 같이 작업 공간과 기본 이름의 두 부분으로 구성됩니다.

위치

위치일반적인 용어입니다(예: "데이터 위치 입력" 또는 "데이터 위치 입력" 참조).

정방향 및 백슬래시

Windows에서는 백슬래시(\)가 경로 구분 기호로 사용됩니다. UNIX 시스템에서는 슬래시(/)를 사용합니다. ArcGIS에서는 경로를 지정할 때 어떤 슬래시를 사용하는지는 중요하지 않습니다. ArcGIS는 사용하는 문자에 관계없이 항상 경로를 올바르게 읽습니다.

스크립트 작성 시 백슬래시

Python과 같이 UNIX 및 C를 기반으로 하는 프로그래밍 언어는 백슬래시(\)를 제어 문자로 취급합니다. 예를 들어 \n은 캐리지 리턴에 해당합니다. 경로에 백슬래시가 포함될 수 있으므로 이를 이스케이프 문자로 인식하지 않아야 합니다. 다음과 같이 이중 백슬래시를 사용하는 것이 일반적입니다.

thePath = "E: \\ 데이터 \\ 텔루라이드 \\ newdata.gdb \\ 슬로프"

r 지시어를 사용하여 경로를 Python 문자열로 변환하는 또 다른 옵션이 아래에 나와 있습니다. 이로 인해 Python은 백슬래시를 무시하게 됩니다.

경로 = r"E:\data\telluride\newdata.gdb\slopes"

절대 및 상대 경로

절대 또는 전체 경로

절대(또는 전체) 경로는 드라이브 문자로 시작하고 그 뒤에 콜론이 옵니다(예: D:).

상대 경로

상대 경로는 현재 디렉터리를 기준으로 한 위치를 나타냅니다. 상대 경로는 두 개의 특수 문자인 점(.)과 이중 점(..)을 사용합니다. 이 문자는 각각 현재 디렉터리와 상위 디렉터리로 이동하는 데 사용됩니다. 이중 점은 한 수준 위로 이동하는 데 사용됩니다. 점 하나는 현재 디렉터리 자체를 의미합니다.

아래 폴더 구조에서 Windows 탐색기를 사용하여 D:\Data\Shapefiles\Soils 폴더로 이동했다고 가정해 보겠습니다. 이 디렉터리로 변경하면 상대 경로는 D:\Data\Shapefiles\Soils 디렉터리를 현재 디렉터리로 사용합니다(새 디렉터리로 변경하여 현재 디렉터리가 될 때까지). 현재 디렉터리를 루트 폴더라고도 합니다.

현재 디렉터리(Soils)에서 Landuse 폴더로 이동하려면 Windows 탐색기의 주소 표시줄에 다음 텍스트를 입력해야 합니다.

Windows 탐색기는 D:\Data\Shapefiles\Landuse 폴더로 이동합니다. D:\Data\Shapefiles\Landuse 폴더를 현재 폴더로 사용하는 다른 예는 다음과 같습니다.

.. (D:\Data\Shapefiles) ..\.. (D:\Data) ..\..\Final (D:\Data\Final) . (D:\Data\Shapefiles\Landuse - 현재 디렉터리) .\..\Soils (D:\Data\Final\Soils) ..\..\.\Final\..\Shapefiles\.\Landuse (D :\Data\Shapefiles\Landuse)

메모:

ArcGIS 응용프로그램에서는 상대 경로(점 및 이중 점 사용)를 입력할 수 없습니다.

상대 경로는 다른 드라이브로 확장될 수 없습니다. 예를 들어 현재 폴더가 D 드라이브에 있는 경우 상대 경로를 사용하여 E 드라이브의 디렉터리로 이동할 수 없습니다.

ArcMap의 절대 및 상대 경로

ArcMap 문서(ArcScene 또는 ArcGlobe)를 생성할 때 상대 경로가 저장되도록 지정할 수 있습니다. 이 옵션을 설정하려면 파일 > 지도 문서 속성. 여기서 절대 경로 또는 상대 경로를 저장할지 여부를 지정할 수 있습니다.


상대 경로를 사용하여 문서를 저장하면 응용 프로그램은 문서를 저장한 위치(예: 현재 디렉터리)에 따라 경로를 상대 경로(점과 이중 점 사용)로 변환합니다. 예를 들어 문서가 다음 위치에 저장되어 있는 경우

D:\Maps\Posters\Newmap.mxd

레이어 중 하나의 데이터는 다음과 같습니다.

D:\Data\Final\Infrastructure.gdb\Streets

그러면 다음이 Newmap.mxd에 작성됩니다.

..\..\Data\Final\Infrastructure.gdb\Streets

Newmap.mxd를 다시 열면 ArcMap은 저장된 상대 경로(점 1개와 점 2개로 표시됨)를 레이어의 데이터 소스로 표시되는 절대 경로로 다시 변환합니다. 이 변환은 항상 지도 문서의 위치(현재 디렉터리)에 따라 달라집니다.

상대 경로는 드라이브를 변경할 수 없습니다. 즉, 루트 디렉터리가 D 드라이브에 있으면 상대 경로를 사용하여 E 드라이브의 디렉터리로 이동할 수 없습니다. 상대 경로를 사용하여 지도 문서를 저장하면 동일한 드라이브에 있는 지도 문서만 변환되어 저장됩니다.

모델 도구의 절대 및 상대 경로

ArcMap과 마찬가지로 상대 경로가 모델 도구에 저장되도록 지정할 수 있습니다.

  • 모델 데이터
  • 모델의 래스터 이미지
  • 모델에 사용된 도구
  • 스타일 시트
  • 범례에 사용되는 레이어 파일(.lyr)

상대 경로를 저장하려면 모델 도구를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 일반 탭을 클릭합니다. 대화 상자 하단에서 아래와 같이 옵션을 활성화합니다.


동일한 드라이브에 속한 경로만 변환됩니다.

상대 경로는 드라이브를 변경할 수 없습니다. 즉, 루트 디렉터리가 D 드라이브에 있으면 상대 경로를 사용하여 E 드라이브의 디렉터리로 이동할 수 없습니다. 상대 경로를 사용하여 모델을 저장하면 동일한 드라이브에 있는 경로만 변환되어 저장됩니다.

스크립트 도구의 절대 및 상대 경로

마법사를 사용할 때 스크립트 추가상대 경로를 저장하는 옵션이 첫 번째 패널에 나타납니다. 스크립트 도구를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 일반 탭을 선택하여 이 옵션을 설정할 수도 있습니다. 대화 상자 하단에서 다음을 선택합니다. 절대 경로 대신 상대 경로 이름 저장.

상대 경로에 사용되는 현재 폴더는 해당 도구 상자가 포함된 폴더입니다. 상대 경로 옵션은 경로를 다음으로 변환하고 저장합니다.

  • 스크립트
  • 기본값 속성에 사용되는 데이터 세트
  • 도구 메타데이터 및 도움말에서 참조하는 파일
  • 범례 속성에 사용되는 레이어 파일(.lyr)
  • 컴파일된 도움말 파일(.chm)
  • 스타일 시트

동일한 드라이브에 속한 경로만 변환됩니다.

상대 경로는 드라이브를 변경할 수 없습니다. 즉, 루트 디렉터리가 D 드라이브에 있으면 상대 경로를 사용하여 E 드라이브의 디렉터리로 이동할 수 없습니다. 상대 경로를 사용하여 스크립트 도구를 저장하면 동일한 드라이브에 있는 경로만 변환되어 저장됩니다.

스크립트의 경로는 변환되지 않습니다.

스크립트에는 점과 이중 점을 사용할 수 없습니다. 예를 들어 다음 항목은 작동하지 않습니다.

arcpy.AddField_management("..\redlands.mdb\streets", "ref_ID", "long", "9", "#", "#", \ "refcode", "NULLABLE", "필수", "# ")

왜냐하면 ..\redlands.mdb\streets 경로는 상대적입니다.

절대 경로 대신 상대 경로를 사용하는 이유는 무엇입니까?

절대 경로 사용의 특징은 다음과 같습니다.

  • 문서나 도구 상자를 컴퓨터의 어느 위치로든 이동할 수 있으며 문서나 도구를 열 때 데이터는 계속해서 발견됩니다.
  • 대부분의 컴퓨터에서 데이터 위치는 일반적으로 변경되지 않습니다. 즉, 일반적으로 한 폴더에서 다른 폴더로 데이터를 이동하지 않습니다. 일반적으로 절대 경로가 사용됩니다.
  • 다른 드라이브에 있는 데이터를 참조할 수 있습니다.

상대 경로를 사용할 때 다음과 같이 조정해야 할 수도 있습니다.

  • 지도 문서나 도구 상자를 이동할 때 참조하는 데이터도 이동해야 합니다.
  • 문서, 툴킷, 데이터를 다른 사용자에게 전송할 때는 상대 경로를 사용해야 합니다. 그렇지 않으면 사용자 컴퓨터가 귀하 컴퓨터와 동일한 디렉터리 구조를 가져야 합니다.

예를 들어 아래 폴더 구조를 살펴보겠습니다. 이 예에서 D:\Tools\Toolboxes\Toolbox1에는 스크립트 도구 D:\Tools\Scripts\MyScript.py가 포함되어 있습니다.

절대 경로를 사용할 때 도구 상자 D:\Tools\Toolboxes\Toolbox1을 E:\Final\Toolbox1과 같은 다른 드라이브로 이동하면 ArcGIS는 D:\Tools\Scripts\MyScript.py를 찾고 모든 것이 제대로 작동합니다. . 상대 경로를 사용하면 ArcGIS가 스크립트를 찾지 못하고 도구가 작동하지 않습니다. 도구의 대화 상자가 열리지만 도구를 실행한 후에는 "이 도구와 관련된 스크립트가 존재하지 않습니다."라는 오류 메시지를 받게 됩니다. 도구 속성을 열고 스크립트에 대한 올바른 경로를 입력해야 합니다.

반면, 상대 경로로 작업하는 경우 D:\Tools 폴더를 컴퓨터의 어느 위치에나 복사하기만 하면 모든 것이 작동합니다. 다른 사용자가 폴더를 F:\NewTools 디렉터리에 복사할 수 있고 D:\Tools\Scripts\MyScript.py 경로가 해당 컴퓨터에서 당연히 발견되지 않기 때문에 절대 경로를 사용할 때는 이 방법이 작동하지 않습니다.

결론

  • 상대 경로는 드라이브를 변경할 수 없습니다.
  • 일반적으로 개인용 컴퓨터 디스크의 경우처럼 데이터가 전송되지 않는 경우 절대 경로를 사용하는 것이 좋습니다.
  • 상대 경로는 문서와 데이터를 다른 사용자에게 전송할 때 유용합니다.
  • 상대 경로는 점 및 이중 점 표기법(. 및 ..)을 사용합니다. Windows 탐색기 및 Windows 명령 프롬프트에서 이러한 표기법을 사용하여 상대 경로를 입력할 수 있습니다.
  • ArcGIS에서는 포인트 및 이중 포인트 표기법을 사용하여 상대 경로를 입력하는 것을 허용하지 않습니다. 대개 상대 경로는 문서와 도구 상자에 저장됩니다(상대 경로 저장 옵션을 선택한 후).
  • 상대 경로는 저장된 문서나 도구 상자의 위치인 현재 폴더를 기반으로 합니다.

UNC 경로

UNC는 Universal(또는 통일 또는 통합) 명명 규칙을 나타내며 컴퓨터 네트워크의 디렉터리 및 파일에 액세스하기 위한 구문입니다. 구문은 다음과 같습니다.

\\\\

예를 들어:

\\pondermatic\public\studyarea.gdb \\omnipotent\shared_stuff\wednesday\tools

컴퓨터 이름은 이중 백슬래시(\\)로 구분됩니다.

UNC에서는 컴퓨터 이름을 호스트 이름이라고도 합니다.

UNC 경로에는 여러 가지 규칙이 있습니다.

  • UNC 경로에는 볼륨 레이블(예: D)이 포함될 수 없습니다.
  • 일반 디렉터리보다 상위 디렉터리로 이동할 수 없습니다.
  • 옵션 상대 경로 이름 저장문서 및 도구의 경우 UNC 경로에는 적용되지 않습니다.

ArcGIS에서는 모든 경로 요청에 UNC 경로를 사용할 수 있습니다. 이는 LAN(Local Area Network)에서 공개적으로 액세스할 수 있는 데이터에 특히 유용합니다. 데이터는 한 대의 컴퓨터에 저장될 수 있으며 컴퓨터가 꺼지거나 네트워크 연결이 끊어지지 않는 한 해당 데이터에 액세스할 수 있는 사람은 누구나 데이터를 사용할 수 있습니다.

Windows에서는 네트워크의 다른 사용자가 해당 폴더로 작업할 수 있도록 폴더를 공유할 수 있습니다. ArcCatalog 또는 Windows 탐색기에서 마우스 오른쪽 버튼을 클릭합니다. 공유 및 보안열리는 대화 상자의 추가 지침을 따르세요.

URL

URL은 Universal Resource Locator의 약자로 인터넷에 있는 모든 문서의 주소를 고유하게 설명합니다. URL의 구성요소는 다음과 같습니다.

  • HTTP(HyperText Transfer Protocol) 또는 FTP(File Transfer Protocol)와 같이 리소스에 액세스하는 데 사용되는 프로토콜
  • 연결이 설정되는 호스트(서버)
  • 호스트의 파일 경로

예를 들어:

http://www.esri.com/products.html

Windows Internet Explorer를 사용하면 Internet Explorer 주소 표시줄에 www.esri.com 문자열을 입력할 수 있으며 프로토콜 유형이 자동으로 http://로 추가됩니다. http와 같이 프로토콜을 명시적으로 지정하는 것이 더 정확합니다. 다른 프로토콜로는 HTTPS(Secure Hypertext Transfer Protocol), FTP, mailto(이메일 주소) 및 뉴스(유즈넷 뉴스) 등이 있습니다.

ArcGIS에서는 적절한 경우 URL 경로를 사용할 수 있습니다. 일반적으로 사용자 인터페이스는 URL 사용이 가능하거나 필요한 경우 힌트를 제공합니다. ArcGIS Explorer에서 URL을 사용하는 경우 다음과 같은 프로토콜 유형을 포함하는 것이 좋습니다.

http://www.esri.com

ArcSDE 연결 파일 경로

지오프로세싱 도구는 연결 파일(.sde) 경로를 사용하여 ArcSDE 데이터베이스에 저장된 데이터에 접근합니다.

D:\Data\Final\ArcSDE.sde\EastValley\powerlines에 연결

.sde 파일의 연결 정보는 ArcSDE에 대한 연결을 생성하는 데 사용되며, 지오데이터베이스는 파일 및 개인 지오데이터베이스와 동일한 방식으로 요청된 데이터를 조회합니다(위 참조).

스크립트와 동일한 폴더에 있는 파일에 쉽게 액세스할 수 있습니다. 그러나 다른 폴더에 있는 파일을 작업할 때 초보자는 미쳐가기 시작합니다.

이 기사에서 우리는 다음을 배울 것입니다:

  • - 파일의 절대 경로와 상대 경로는 무엇입니까?
  • - 서버와 브라우저에서 어떻게 다른가요?
  • - 파일 경로를 구축할 때 초보자가 저지르는 실수와 이를 방지하는 방법.

서버의 파일 경로

서버의 절대 경로는 루트에서 스크립트까지의 전체 경로입니다. "마법" 상수 __FILE__을 사용하여 스크립트의 전체 경로를 찾을 수 있습니다.

운영 체제에 따라 결과가 달라질 수 있습니다.

D:\OpenServer\도메인\사이트\index.php- Windows의 OpenServer용

/var/www/site/index.php - UNIX용

물론, include() 함수와 그 유사체는 절대 경로로 파일을 포함할 수 있습니다:

서버의 상대 경로는 현재 스크립트가 있는 폴더의 경로입니다. 우리 웹사이트에 index.php와 config.php라는 2개의 스크립트가 있다고 가정해 보겠습니다. 그런 다음 절대 경로와 상대 경로를 모두 사용하여 첫 번째 경로와 두 번째 경로를 연결할 수 있습니다.

지금까지는 모든 것이 간단합니다. 그러나 다른 파일을 포함하는 파일을 포함하기로 결정하면 상황이 좀 더 복잡해집니다. 명확성을 위해 스크립트 script1.php 및 script2.php 가 포함된 스크립트 폴더가 있다고 가정해 보겠습니다.

Index.php 스크립트 script1.php script2.php

파일의 내용은 다음과 같습니다.

브라우저에서 index.php 파일을 실행하세요. 모든 것이 올바르게 완료되면 메시지가 표시됩니다 연결 성공. 이제 script2.php 파일을 index.php 와 동일한 수준의 사이트 루트로 이동해 보세요.

아무것도 변경되지 않았으며 사이트가 계속 표시됩니다. 연결 성공. 어떻게 이런일이 일어 났습니까? 사실 PHP는 연결 폴더와 연결 스크립트 폴더 모두에서 파일을 찾으려고 시도합니다. 아시다시피, 서로 다른 폴더에 두 개의 파일이 있는 경우 실수로 잘못된 스크립트를 연결하여 사이트가 중단될 수 있습니다.

상대 경로를 사용한 탐색.

상대 경로는 슬래시 / 로 시작하지 않습니다. 앞에 슬래시가 있으면 PHP는 경로를 절대 경로로 간주합니다.

폴더1/폴더2/폴더3/script1.php- 하위 폴더에서 파일 검색

../index.php - 한 폴더 위로 이동

../../../index.php - 3개 폴더 위로 이동

서버의 파일 경로를 지정하는 방법은 무엇입니까?

상대 경로는 잊어버리세요. 항상 절대 파일 경로만 제공하십시오. 급진적이죠? 걱정하지 마십시오. PHP 커뮤니티에서는 전체 경로를 지정하지 않고 전체 경로를 지정하는 2가지 간단한(어려운 방법도 있습니다 :)) 방법을 제시했습니다.

첫 번째 방법은 dirname() 함수를 사용하는 것입니다. 파일 경로를 사용하고 파일 이름 없이 경로를 반환합니다. 파일이 위치한 폴더. __FILE__과 dirname()을 결합하면 현재 스크립트 폴더를 얻을 수 있습니다.

이제 우리는 현재 스크립트와 동일한 폴더에 script2.php 파일이 포함될 것임을 확신합니다.

두 번째 방법은 상수를 사용하는 것입니다. 많은 인기 있는 CMS에서 사용되며 다음과 같습니다.

사이트의 루트 폴더에 대한 전체 경로를 저장하는 상수 DIR_ROOT가 생성됩니다. 자주 사용하는 폴더에 대한 링크가 포함된 여러 상수를 선택적으로 만들 수도 있습니다. include()에서는 상수를 전달하고 필요한 파일의 경로가 이에 상대적으로 추가됩니다.

브라우저의 파일 경로

브라우저는 서버의 하드 드라이브에 액세스할 수 없습니다. 해당 "범위"는 사이트의 루트 폴더에서 시작됩니다. 따라서 서버와 브라우저의 절대 경로와 상대 경로는 완전히 다르게 보입니다.

브라우저에 있는 파일의 절대 경로는 슬래시 /로 시작합니다(예: /images/logo.jpg). 이 경로는 파일이 site.ru/images/logo.jpg에 있음을 의미합니다.

파일의 상대 경로는 정확히 동일해 보이지만 앞에 슬래시가 없습니다(예: Images/logo.jpg).

초보자가 흔히 범하는 실수는 절대 경로 대신 상대 경로를 사용하는 것입니다. 사이트 로고가 site.ru/images/logo.jpg에 있다고 가정해 보겠습니다. 상대 경로를 통해 연결해 보겠습니다.

모든 것이 잘 작동하는 것 같습니다. 그러나 이는 사용자가 site.ru/products/15/와 같은 일부 폴더로 이동할 때까지 발생합니다. 짐작할 수 있듯이 브라우저는 다음 위치에 로고 로드를 시도합니다. site.ru/products/15/images/logo.jpg.

항상 절대 파일 경로를 사용하십시오. 이렇게 하면 발생할 수 있는 대부분의 탐색 문제를 피할 수 있습니다.

아시다시피 태그의 href 매개변수에는 () 참조되는 파일의 경로를 지정해야 합니다.
많은 사람들이 http://somesite.ru/catalog/doc.html과 같은 것을 작성합니다. 예, 아무도 논쟁하지 않습니다. 작동합니다. 하지만 "그러나"가 하나 있습니다. 예를 살펴보겠습니다.

예를 들어 귀하의 사이트를 일부 무료 호스팅에서 호스팅하고 해당 주소는 다음과 같습니다: http://fsite.freehosting.ru.
서버에는 약 100개의 문서가 있습니다. 그래서 웹사이트를 다른 도메인으로 옮기기로 결정했습니다.
ru 영역(http://site.ru)에서 유료 호스팅을 하도록 하세요. 자, 이제 어디에서나 http://fsite.freehosting.ru를 http://site.ru로 바꿔야 할까요?
네, homesite와 같은 편집자들 덕분에 이것이 가능합니다. 그러나 이것은 해결책이 아닙니다.
페이지를 서버에 업로드하기 전에 페이지의 기능을 확인한다고 가정해 보겠습니다.
홈 아파치 서버에서(아직 "홈 서버"가 무엇인지 모르는 사람들을 위해 여기(아파치 서버 설치 및 구성)로 이동하고 http://localhost 대신 http://를 작성해야 합니다. site.ru는 어디에서나 이에 동의합니다. 적어도 불편합니다.

해결책은 파일 경로를 지정할 때 사이트에서의 위치가 아니라 서버에서의 위치를 ​​고려하는 것입니다.

절대 경로

예를 들어 http://somesite.ru/catalog/doc.html에 있는 doc.html 파일을 살펴보겠습니다. 아시다시피 서버에는 www 폴더가 있습니다. 주소에서 볼 수 있듯이 이 폴더에는 카탈로그 폴더가 포함되어 있으며 이미 doc.html 파일이 포함되어 있습니다.

파일 경로를 지정할 때 주소 앞에 /를 넣으면 다음과 유사합니다: root_directory_in_the_north/www/파일 경로.
즉, http://somesite.ru/catalog/doc.html은 /catalog/doc.html과 유사합니다.
따라서 주소 앞에 /가 있으면 www 디렉토리부터 "카운트다운"이 시작된다는 의미입니다.
이제 http://localhost/index.html 대신 모든 문서에서 /index.html을 작성할 수 있습니다.
그러나 cgi 디렉토리로 이동하려면 다음과 같이 작성해야 합니다: /cgi-bin/path to the file.

위에 설명된 방법을 사용하여 생성된 경로는 서버에 있는 파일의 절대(전체) 경로가 표시되므로 절대 경로라고 합니다.

상대 경로

링크가 나오는 문서 자체를 기준으로 지정되는 상대 경로도 있습니다.
예를 들어, doc.html newcat/new.html에 링크를 생성하면 new.html 파일이 newcat 디렉토리에 있고 이 디렉토리는 doc.html 파일과 동일한 디렉토리에 있음을 의미합니다. 보시다시피 이 경로는 doc.html 파일에 상대적입니다. 이 파일이 어디에 있든 doc.html 파일과 newcat 디렉터리가 동일한 수준(예: 동일한 디렉터리)에 있는 경우 newcat/new.html 경로는 항상 유효합니다.

문서를 기준으로 한 디렉터리 위로 이동할 수도 있습니다. 이렇게 하려면 ../.을 작성해야 합니다.
예를 들어, 큰 디렉터리가 있는데 여기에는 기본 디렉터리와 보조 디렉터리라는 두 개의 디렉터리가 포함되어 있습니다. 기본 디렉터리에는 이미 익숙한 doc.html 파일이 포함되어 있습니다. 보조 디렉토리에는 new.html 파일이 있습니다. doc.html 파일에서 new.html 파일로의 링크를 만들려면 ../secondary/new.html을 작성해야 합니다. 그러나 큰 디렉토리가 www 디렉토리에 있는 경우 new.html 파일의 경로는 /big/secondary/new.html과 같이 지정할 수 있습니다.

결론보다는 절대 경로와 상대 경로를 사용하면 초보자든 전문가든 웹 마스터의 작업이 크게 쉬워진다는 점을 언급할 가치가 있습니다. 따라서 그들이 말하는 것처럼 이 기회를 최대한 활용하고 http://site.ru/catalog/file.file과 같은 경로를 피하거나 최소한 도움을 최대한 적게 받으십시오.



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: