2016-06-03 1 views
1

웹 응용 프로그램의 모든 페이지에 특정 링크를 표시하려고합니다. 링크는 웹 응용 프로그램을 검색하는 중에 내 경로가 Laravel 5.0의 동적 URL

Route::get('home', '[email protected]'); 
Route::get('path1/path2/path3', '[email protected]'); 
Route::get('my-link', '[email protected]'); 

파일

<a href="my-link">Some text for the link!</a>

아래에 주어진 내가 mydoamin.com/home에서 오전 때, 링크 주소가 정확한지, mydomain.com/my-link입니다.

그러나 URL이 mydoamin.com/path1/path2/path3 인 경우 링크 주소는 mydoamin.com/path1/path2/my-link이됩니다. 따라서 경로가 존재하지 않기 때문에 링크를 클릭하면 404 오류가 발생합니다.

도메인 이름을 하드 코딩하지 않고도 모든 페이지에 항상 mydomain.com/my-link이라는 링크를 표시하려면 어떻게해야합니까?

참고 : 링크 코드 <a href="my-link">Some text for the link!</a>을 부분 파일에 넣었습니다. 그 파일을 모든 페이지에 포함시키고 있습니다.

답변

2

를 참조?

<a href="/my-link">My link</a>은 루트 디렉토리 (www.domain.com/my-link)에서 실행되는 사이트에서 사용할 수 있습니다. 그러나 하위 디렉토리에서 실행중인 경우 모든 URL을 변경해야합니다.

Laravel이 named routes을 도입 한 이유는 이것이 올바른 URL을 자동으로 생성하기 때문입니다. 예를 들어

:

당신이 사이트가 www.domain.com/my-website/에서 실행하고있어 당신이 /my-website/...에 프로젝트의 모든 링크를 변경해야 /my-link를 가리 키도록해야하는 경우.

그래서 named routes을 사용하는 것이 좋습니다. named routes

명명 된 경로를 사용하는 방법


는 URL의 편리한 세대를 허용하거나 특정 경로에 대한 리디렉션합니다.

그리고 이것은 당신이 사용할 필요가 드 코드 : 당신이 사용할 수있는

Route::get('home', ['as' => 'home', 'uses' => '[email protected]']); 
Route::get('path1/path2/path3', ['as' => 'path3', 'uses' => '[email protected]']); 
Route::get('my-link', ['as' => 'my-link', 'uses' => '[email protected]']); 

을 그 후 :

<a href="{{ url(route('my-link')) }}"> 
    Some text for the link! 
</a> 

Laravel가 자동으로 원하는 명명 된 경로에 대한 올바른 URL을 생성합니다 용도.

희망 작품입니다.

자세한 내용은 https://laravel.com/docs/5.2/routing#named-routes

+1

나는 당신과 동의합니다. 당신의 해결책이 더 좋습니다. – linuxartisan

+0

@linuxartisan 감사합니다! :) –

1

href="/my-link"이어야합니다. /은 루트에서 시작한다는 의미입니다.

./my-link, ../my-link 또는 ../../my-link과 같은 다른 방법을 사용해보십시오. 당신이 /my-link을 사용하지 말아야하는 이유

link: absolute, relative, root

+0

'/ my-link'가 매력처럼 작동했습니다. Thanx @ yyc1217 – linuxartisan