2016-10-27 3 views
0

내 laravel 경로를 벗어난 각도 앱을 가지고 있습니다/Laravel은 특정 접두사를 제외한 모든 것을 무시할 수 있습니까?

/api 아래에 다른 모든 항목이 있습니다.

각도에서 html5 모드를 활성화하고 SPA를 라우팅과 같이 유지할 수 있기를 원하지만, 할 때 laravel이 경로를 포착합니다.

그래서 어떻게 라우트 라우터가 API와 초기 경로를 제외한 모든 것을 무시할 수 있습니까? 다음 각도 핸들 라우팅을하자 - laravel 5.2 당신은 모든 요청에 ​​인덱스 뷰를 렌더링하는 포괄 경로가 필요합니다

답변

0

를 사용

. Angular app 내에 404 페이지 등을 만들어야한다는 것을 기억하십시오.

// API routes here 

// Catch-all route to point everything to index page 
Route::get('{something}', function() { 
    return view('index'); 
}); 

API 경로와 관련하여 API 응답을 반환하려면 catch-all 경로 위에 배치해야합니다.

각도 라우팅

각도 1 또는 2를 사용하고 있습니까? 어떤 각도의 라우터를 사용하고 있습니까? 예 : Angular1가 $location를 사용하여 당신은 path에 두번째 매개 변수로 false를 추가

$location.path('/some-path/', false); 
+0

이 작동하지 않습니다. 그것은 여전히 ​​RouteCollection.php 라인 161 : –

+0

에서 NotFoundHttpException 라우트를 말합니다. 오타 - 업데이트 된 응답 – Gravy

+0

에 따라'*'를'{something} '로 바꾸십시오. 그러나 이제 행동은 aleksejj 제안과 동일합니다. 모든 링크가 각도를 다시 불러옵니다 –

1

을 당신이 다음을 할 수 있다고 생각 :

// Catch any routes except 'api' 
Route::any('{all}', '[email protected]')->where('all','^((?!api).)*?'); 
+0

이것은 작동하지만 각 링크마다 각도가 변경됩니다. –

+0

@JasonSpick Hmm. 각 회선이 어떻게 작동합니까? 나는 전에 비슷한 일을했다. 따라서 사용자가 브라우저에서'site.com/any/path/here'를 탭하면 기본 템플릿을받습니다. 그런 다음 앵귤러가 모든 경로를 처리하고 'api'경로에 요청하여 데이터를 가져옵니다. '.when ('/ any2/path2/here2'와 마찬가지로 { templateUrl : 'some/url', 컨트롤러 : 'someController' }) ' 이 경우 전체 페이지 새로 고침이 필요하지 않습니다. – aleksejjj

관련 문제