2012-04-18 2 views
11

정적 HTML 사이트를 구축 할 때 기본 URL을 <base url="http://localhost:8888/mysite" />과 같이 설정할 수 있습니다. 이미지를 삽입 할 때 과 같은 의미의 <img src="/img/logo.png" />과 같은 기본 URL에서 복사 할 수 있습니다.정적 사이트에서 루트 상대 링크를 만들려면 어떻게해야합니까?

제 문제는 사이트를 이동할 때 이러한 상대 링크가 작동하지 않는다는 것입니다. 내가 Dropbox에서 누군가와 그것을 공유하려고하기 때문에 고통이다. 내가 기본 URL을 <base url="http://dl.dropbox.com/u/xxxxxxxx/mysite" />으로 변경할 수 있다고 생각했지만 이미지 링크가 여기 찾고 있습니다 : 머리에 설정된 전체 기본 URL 대신 <img src="http://dl.dropbox.com/img/logo.png" />.

왜 이런가요?

+0

이상한'기본 URL '을 제거하고 기본 폴더를 이동시키는 이유는 무엇입니까? (동적 사이트가 아니기 때문에 기본 URL은 현재 파일이있는 URL입니다 ...) –

+0

그게 제가 생각한 것입니다.하지만 기본 태그를 제거하고 웹 사이트를 드래그하면 데스크톱과 같은 임의의 폴더로 이동하고 링크 위로 마우스를 가져 가면 'http : // localhost/assets/img'에서 찾습니다. '~/Desktop/website_folder/assets/img'와 같아야합니다. –

+0

내가 사이트에있는 계층의 수준에 관계없이'/ assets/img/foo.png'에서 이미지를 호출 할 수 있기를 원합니다. 만약 내가 각 페이지를 자신의 기반으로 다루는다면 상대 링크를 만들어야하고이 상황에 대해 걱정해야한다 :'../../../../../ assets/img/foo.png' . –

답변

15

은 잃게 /를 선도 그것을 상대 URL로 만들려면 :

  • 는 정규화, 예를 들면 :

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

    이 URL의 3 종류가 있습니다를 http://example.org/path/to/file

  • 절대, 예. /path/to/file (example.org 도메인의 모든 페이지에서 링크가 온 것으로 가정)

  • 상대. path/to/file은 (링크를 가정하면 루트 (/) "폴더"또는 기본 URL이에서 오는 http://example.org/) 또는 to/file (링크를 가정하면 '경로' '폴더'내에서 제공 또는 기본 URL이 http://example.org/path/입니다)

+0

복잡한 계층 구조를 가진 사이트를 만들 때 상대 URL을 사용하면 훨씬 더 악취가납니다. 페이지에 따라, 나는'path/to/file' 또는'../ path/to/file'이나'../../ path/to/file'을 사용해야 할 것입니다. 나는 [Middleman] (http://middlemanapp.com)을 정적 사이트 생성기로 사용하여 메인 탐색 링크를 끌어 와서 사이트의 모든 페이지에서 이름을 볼 필요가 있습니다. –

+3

필자는 항상 url에 슬래시 ('/')를 사용하여 상대 URL 인 _root를 들었습니다. 덧붙여, _protocol relative_ (때로는 scheme relative라고도 함) urls :'

2

나는이 게임에 조금 늦었다는 것을 알고 있지만 여기에서는 원시 HTML 대신 Rails 자산 태그를 사용해야합니다. 예를 들어, 사용하는 대신

:

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

당신은 사용해야합니다

<%= image_tag 'logo.png' %> 

그 가정 :

  1. 을 당신은 당신의 소스 페이지
  2. 을 위해 파일을 .erb 사용하고
  3. 이미지 애셋 경로를 /img/ (으)로 설정했습니다. UR config.rb 파일

다른 방법으로, 당신은과 CSS를 참조 할 수 있습니다 :

<%= stylesheet_link_tag 'file.css' %> 

자바 스크립트 파일에 포함 할 수 있습니다

<%= javascript_include_tag 'file.js' %> 

중매인은 당신이 있는지 여부 자산을 제어 할 수 있기 때문에 (config.rb의 일부 줄의 주석을 풀어 냄으로써) 상대적으로 참조되며, Rails 자산 태그를 사용하면 정적 HTML보다 훨씬 더 많은 의미가 있습니다. 아직 전환하지 않은 경우 전환을 적극 권장합니다. 이 태그들 또는 ERB 구문에 대해 더 이상의 질문이 있으면 여기에서 질문하십시오.

관련 문제