2009-07-25 2 views
0

다음은 웹 응용 프로그램에서 이미지를 호출하는 두 가지 방법입니다. 최선을 다 할 것이다 웹 앱에서 가장 유용한 경로 유형은 무엇입니까?

<img src="http://www.example.com/myapp/img/world.gif" /> 

<img src="/myapp/img/world.gif" /> 

또는

사용하거나 모두 동일한 의미를 갖는다. 둘 다 같은 의미가 없다면 그 이유는 무엇입니까? 나는 모든 파일 (이미지, SWF, FLV 등)

답변

6

일반적으로, 첫 번째 방법은 응용 프로그램의 일부인 모든 자원을 참조하는 선호하는 방법이 될 것이다. 상대 URI 참조라고하며 모든 링크를 변경하지 않고 응용 프로그램을 다른 도메인 이름으로 전송할 수 있습니다.

당신은 심지어 HTML 위 http://www.example.com/myapp/main.html

같은 일부 장소 당신은 또한/MyApp를 경로에 연결되지 않은 그런 식으로 나타나는지 가정 ... 같은

<img src="img/world.gif" /> 

같은 상대 경로를 사용하여 고려할 수 있습니다

접두사를 사용하면 응용 프로그램을/superapp로 쉽게 옮길 수 있습니다.

대부분의 응용 프로그램 프레임 워크와 템플릿 시스템은 현재 응용 프로그램의 루트 URI를보고하는 방법이있다. 그러한 경우 특정 환경의 대체/확장 메커니즘에 따라

<img src="$(APPROOT)/img/world.gif" /> 

...과 같은 것을 사용하는 것이 가장 편리 할 수 ​​있습니다. 여기에서는 $ (APPROOT)가 현재 응용 프로그램의 절대 기본 URI로 대체된다고 가정합니다.

0

는 개발 환경에서 성능에 문제 그러나 당신이 일을 여러 번 테스트 및이 없다 전화를 내 응용 프로그램에서 두 번째 방법을 사용하는 경우 및 성능 제약이있다 두 번째 양식을 사용하는 경우는 다음과 같이 뭔가를 변경하는 것을 의미합니다 :

<img src="http://beta.example.com/myapp/img/world.gif" /> 

<img src="http://www.example.com/myapp/img/world.gif" /> 

에 따라서는 모든 자원을 항상 절대 상대 URI를하는 것이 좋습니다

+0

조금 혼란 스럽습니까? 첫 번째는 절대 URL이고 두 번째 유형은 절대 상대 URL입니다. 맞습니까? – Prashant

+1

아니요. 첫 번째 것은 절대적인 상대이므로 실제 서버의 컨텍스트에서는 절대적이지만 상대적인 서버는 어떤 서버에 있는지에 따라 달라 지므로 상대적인 것입니다. 두 번째 것 (가장 긴 것)은 항상 있기 때문에 절대적입니다. 항상 같은 위치를 가리키고 있습니다 –

+1

첫 번째 경로는 절대 경로이지만 상대 URL입니다. 두 번째 URL은 상대 URL입니다. 상대 경로 (예 : img/world.gif)가 기본 URI의 경로 구성 요소에 적용되는 절대 경로는 기본 URI의 모든 경로를 대체합니다 – VoidPointer

1

전자의 방법은 서버의 루트에 상대적으로 자원을 찾아 상대 URL입니다. 후자는 디렉토리하지만, 호스트, 하위 도메인, 심지어 프로토콜 단지를 나타내는 절대 URL입니다.

그들은 각각 자신의 장점과 단점을 가지고있다. 상대 경로를 사용하면 도메인 이름이 URL의 일부가 아니기 때문에 새 도메인으로 쉽게 마이그레이션 할 수 있습니다. 절대 경로를 사용하면 ../../images/과 같은 것을 사용할 필요가 없으므로 파일을 더 쉽게 구성 할 수 있습니다 (이로 인해 작업이 복잡하고 읽기 어려워 질 수 있음).

성능 측면에서 유일한 문제는 절대 URL이 약간 길다는 것입니다 (단, 은 항상). 그렇지 않은 경우에는 그렇지 않습니다.

0

웹 응용 프로그램 프레임 워크의 HTML 도우미를 사용하여 URL을 생성하십시오. 예를 들어

, 자바 서블릿에서

: <c:url value='/img/word.gif' /> CakePHP의에서

: <?php echo $html->url('/img/word.gif'); ?> 레일에서

: 사용`<퍼센트 = LINK_TO ... %>

이유 당신의 프레임 워크의 HTML 도우미는 웹 응용 프로그램을 이동해도 URL이 손상되지 않기 때문입니다.