2013-06-04 2 views
1

때때로 "directory/file.extension"대신 "/directory/file.extension"을 쓰는 것을 우연히 발견했습니다. 둘 다 때때로 작동하는 것 같습니다. HTML, JavaScript 및 PHP 중에서 매번 "directory/file.extension"이 작동하는 것처럼 보였습니다. 경우에 따라 PHP는 include을 사용할 때와 같이 "/directory/file.extension"을 좋아하지 않았습니다.웹 언어, "directory/file.extension"vs "/directory/file.extension"

일반적으로 HTML, JavaScript 및 PHP 중에서 슬래시를 사용하지 않는 것이 더 좋습니까? HTML과 JavaScript는 중요한가요?

나는 왜 확인을위한 이유가 무엇인지에 대한 이유를 찾고 있습니다.

+1

당신은 하나의 태그가 맞습니다. 하나는 상대 경로이고 다른 하나는 절대 경로입니다. – Blender

+0

'/'로 시작하는 경로가'http : // domain' 없이도 여전히 절대적이라는 것을 깨닫지 못했습니다. 감사합니다. – asimes

답변

1

경로가 /으로 시작하지 않으면 URL입니다. 즉, 실제 경로 이름은 URL이 포함 된 문서의 URL을 기반으로 결정됩니다. 따라서 URL이 /dir1/dir2/dir3/file.extension 인 페이지가 있고 directory/file2.ext2에 대한 링크가 포함되어있는 경우 링크를 클릭하면 /dir1/dir2/dir3/directory/file2.ext2으로 이동합니다. 하지만 URL이 /dir1/file.extension 인 페이지에 동일한 링크가 있다면 /dir1/directory/file2.ext2으로 갈 것입니다.

상대 URL은 개발 환경에서 프로덕션으로 복사하는 것과 같이 단위로 이동하려는 페이지 모음이있는 경우 유용합니다. 모든 파일 간의 관계가 동일하게 유지되는 한 그 둘 사이의 링크가 작동합니다.

경로가 /로 시작하는 경우

, (엄밀히 말하면, 그것은 또한 프로토콜을 포함해야 같은 http:을하고 서버 이름 //www.company.com)는이 절대 URL라고. 링크가 어디에 있든 관계없이 서버의 문서 루트에서 해석됩니다. 절대 URL은 동일한 콜렉션의 일부가 아닌 파일을 참조 할 때 유용합니다. 예를 들어 문서 계층 구조의 여러 수준에서 페이지에 사용되는 Javascript 라이브러리가있을 수 있습니다.

+0

감사합니다. 필자가 작업 한 파일은 루트에 있었기 때문에'/'를 사용하여'include'가 작동하기 전에 프로토콜과 서버 이름을 필요로했지만'/'없이는 잘 작동한다고 생각합니다. – asimes

+0

@asimes : 당신의 추측은 잘못되었습니다. '/'로 시작하는 경로가 여러분이 docroot 아래에있는 파일을 여는 것으로 가정하기 때문입니다. 예를 들어'/ var/www/fruit/mango.php' 파일이 있고'/ orange.php'가 들어 있고 docroot가'/ var/www'입니다. PHP는 존재하지 않는'/ var/www/orange.php'를 열려고 시도합니다. 하지만'orange.php' 대신에'/'이 없다면 php는 존재하는'/ var/www/fruit/orange.php'를 열려고합니다. – slebetman

+0

그래서'/'는'. /'와 동일합니까? – asimes