루트와 관련된 링크가 있습니까?


161

페이지의 모든 링크를 루트 디렉토리와 관련시키는 방법이 있습니까?

예를 들어, www.example.com/fruits/apples/apple.html나는 다음과 같은 링크를 가질 수 있습니다.

<a href="fruits/index.html">Back to Fruits List</a>

이 링크를 가리키는 것 www.example.com/fruits/apples/fruits/index.htmlwww.example.com/fruits/index.html? 첫 번째 경우 대신 두 번째를 가리킬 수있는 방법이 있습니까?

답변:


293

루트 상대 URL은 다음과 같이 /문자로 시작합니다 <a href="https://stackoverflow.com/directoryInRoot/fileName.html">link text</a>.

게시 한 링크 : <a href="fruits/index.html">Back to Fruits List</a>이 (가)라는 디렉토리에있는 html 파일에 링크되어 있으며이 fruits디렉토리는이 링크가 나타나는 html 페이지와 동일한 디렉토리에 있습니다.

루트 상대 URL로 만들려면 다음으로 변경하십시오.

<a href="/fruits/index.html">Back to Fruits List</a>

OP의 의견에 대한 질문에 대한 답변으로 편집 :

그렇게하면 / www.example.com과 관련이 있습니다. 루트가 무엇인지 지정하는 방법이 있습니까? 예를 들어 루트가 www.example.com/fruits/에서 www.example.com/fruits가되도록하려는 경우 apples / apple.html?

예. href또는 src속성 에서 URL을 앞에두면 /루트 디렉토리에 상대적인 경로가 만들어집니다. 예를 들어,에서 HTML 페이지를 지정 www.example.com/fruits/apples.htmlahref="https://stackoverflow.com/vegetables/carrots.html"페이지에 의지 링크를 www.example.com/vegetables/carrots.html.

base태그 요소는 비록 당신이 (해당 페이지에 대한 기본-URI를 지정할 수 있습니다 base태그에 추가되어야 할 것이다 마다 특정 기지를 사용하는 것이 필요하다고하는 페이지,이를 위해 내가 단순히 W3의 예를 인용합니다 :

예를 들어 다음과 같은 BASE 선언과 A 선언이 있습니다.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
 <HEAD>
   <TITLE>Our Products</TITLE>
   <BASE href="http://www.aviary.com/products/intro.html">
 </HEAD>

 <BODY>
   <P>Have you seen our <A href="../cages/birds.gif">Bird Cages</A>?
 </BODY>
</HTML>

상대 URI "../cages/birds.gif"는 다음과 같이 해석됩니다.

http://www.aviary.com/cages/birds.gif

http://www.w3.org/TR/html401/struct/links.html#h-12.4에서 인용 한 예 .

제안 된 독서 :


1
이렇게 /이 상대에 할 것 www.example.com, 뿌리가 내가 원하는 경우, 예를 들어, 어떤 루트로 무엇을 지정하는 방법이 www.example.com/fruits에은 www.example.com/fruits/apples/apple.html?
Upvote를 클릭하십시오

1
동적으로 찾는 방법이 있습니까? .NET에서 ~ 같은 것? 각 환경에서 폴더 이름이 다른 경우 어떻게됩니까?
Kremena Lalova

21

사용하다

<a href="/fruits/index.html">Back to Fruits List</a>

또는

<a href="../index.html">Back to Fruits List</a>

1
../path 는 작동했지만 CSS 파일 내에서 Expression Web을 사용하면 / path 가 작동하지 않습니다. (파일에 있었다 / 디렉토리 및 참조 / DifferentDirectory
클레이 니콜스

3
<a href="/fruits/index.html">Back to Fruits List</a>

3

당신이에서 URL 작성하는 경우 서버 측ASP.NET 응용 프로그램을 , 그리고 귀하의 웹 사이트를 배포 할 가상 디렉터리 웹 사이트에 (예를 들어 APP2) 즉 http://www.yourwebsite.com/app2/

그런 다음 삽입

<base href="~/" />

제목 태그 바로 뒤에

따라서 루트 상대를 사용할 때마다

<a href="/Accounts/Login"/> 

" http://www.yourwebsite.com/app2/Accounts/Login "

이 방법으로 항상 파일을 상대적으로 절대적으로 가리킬 수 있습니다.)

나에게 이것은 가장 유연한 솔루션입니다.


2
당신의 대답은 간단하지 않습니다. "물결 슬래시"는 ASP.NET 솔루션의 서버 측에서 작동합니다. 이 질문은 서버 측 ASP.NET 솔루션에 관한 것이 아닙니다.
Anders Tornblad

1
나는 당신의 이론을 보았지만 작동합니다. (실제로 그리고 이론적으로) 서버는 HTML을 생성 할 때 "틸드 슬래시"를 응용 프로그램의 루트로 바꿉니다. 먼저 해봤 어?
A-Majeed

물론 나는 그것을 시도했다. 웹 서버는 물결표를 응용 프로그램의 루트로 바꾸지 않습니다. ASP.NET 응용 프로그램 만이 작업을 수행합니다. 다른 환경에서는 "응용 프로그램"과 같은 개념이 없습니다.
Anders Tornblad

아니요. ASP.NET을 사용하지 않는다고 말할 필요는 없습니다. 당신은 그 가정을했지만 대답에 가정을 언급하지 않았습니다. 또한이 질문에는 서버 런타임 환경에 대한 언급이 없으므로 ASP.NET에 대한 질문이라고 가정해서는 안됩니다. StackOverflow에 대한 답변을 제공하는 경우 다른 질문이 아닌 질문에 답변해야합니다. 또한이 질문은 서버 측 ASP.NET 솔루션에 관한 것이 아니라고 말했습니다.
Anders Tornblad

내가 자바 스크립트에서 링크를 렌더링 할 때 나를 위해 일한
발라지 Birajdar을

0

images/루트에서 디렉토리 를 찾는 이미지 태그에 URL을 제공하려면

`logo.png`

다음과 같이 src시작하는 URL 을 제공해야 /합니다.

<img src="/images/logo.png"/>

이 코드는 branches/europe/about.php여전히 로고 가 있어도 아무 문제없이 모든 디렉토리에서 작동합니다 .


0

이 코드 "./"를 서버에서 루트로 사용하십시오.

<a href="./fruits/index.html">Back to Fruits List</a>

그러나 로컬 컴퓨터에있을 때는 루트 상대 경로로 다음 코드 "../"를 사용하십시오.

<a href="../fruits/index.html">Back to Fruits List</a>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.