Program Tip

레일에서 경로를 사용하는 동안 _url과 _path의 차이점은 무엇입니까?

programtip 2020. 11. 6. 19:06
반응형

레일에서 경로를 사용하는 동안 _url과 _path의 차이점은 무엇입니까?


우리가 루트 정의 할 때 routes.rb같은 이름을 사용하여 map.some_link두 개의 ways-에있는 링크를 사용할 수 있습니다 먹을 some_link_url, some_link_path.

  • 둘의 차이점은 무엇입니까?
  • 어느 것이 더 안전합니까?

나는 같은 질문이 있었고 내 블로그에 이것에 대한 작은 글을 썼다 .

그 이유는 여기에 요약되어 있습니다 (포럼에서 찾았습니다).

* _path는 ahref가 현재 URL에 암시 적으로 연결되어 있으므로보기 용입니다. 따라서 반복해서 반복하는 것은 바이트 낭비입니다. 그러나 컨트롤러에서는 HTTP 사양이 3xx 리디렉션의 Location : 헤더가 완전한 URL임을 요구하기 때문에 redirect_to에 * _url이 필요합니다.

다음은 SSL이 아닌 사이트에서 SSL 사이트에 연결할 때 절대 URI를 사용해야하는지 여부에 따라 달라지는 또 다른 설명 입니다.

내가 지금까지 읽은 것은 그들 중 어느 것이 다른 것보다 더 안전하다는 것을 암시하지 않습니다. 실제로 "적절한"사용법이 무엇인지에 달려 있습니다.


path상대적인 반면 url절대적입니다.


"사용자"라는 리소스의 차이점 예 :

users_url # => http://localhost:3000/users
users_path  # => /users

최신 브라우저가 상대 리디렉션을 잘 처리 한다는 점을 제외하면 Petros와 같은 대답 입니다. (그의 대답에 대해 언급하고 싶지만 아직 할 수 없습니다.)


전달 된 모든 데이터를 노출하지 않는다는 의미라면 _path가 '/ login'과 같은 상대 URL을 생성하므로 _path가 더 좋지만 _path는 ' http : // localhost : 3000 / login '을 제공합니다. 같은 것에 대해 언젠가 찾은이 블로그 게시물을 참조하십시오. _url이 _path보다 나은 경우


_url은 전체 경로를 제공합니다. 도메인 이름과 프로토콜이 포함되어 있으므로 예를 들어 사용할 수 있습니다. 이메일을 보내거나 다른 도메인으로 리디렉션하는 등

_path는 도메인, 프로토콜 등없이 '/'뒤에 오는 경로를 반환합니다. 따라서 도메인에 대한 세부 정보가 필요하지 않은 곳에서 가끔 사용할 수 있습니다.


_url그동안 도우미는 전체 URL을 포함하는 문자열을 생성 _path도우미 응용 프로그램, 예를 들어 루트에서 상대 경로를 포함하는 문자열을 생성합니다 :

photos_url  # => "http://www.example.com/photos"
photos_path # => "/photos"

에 따라 레일 가이드 - 라우팅 .

참고 URL : https://stackoverflow.com/questions/2350539/what-is-the-difference-between-url-and-path-while-using-the-routes-in-rails

반응형