2015-01-23 9 views
0

최근 반응과 웹팩을 사용하기 시작했지만 대단한 점이 있지만 응용 프로그램 테스트가 iframe으로 렌더링 될 때 루트가 아닌 경로를 직접로드 할 수 없습니다. 그래서 http://localhost:8000/#/signin을 테스트하고 싶다면 그 URL을로드 할 수 없습니다. 대신 기본 URL을로드하고 로그인 페이지를 가리키는 링크를 클릭해야합니다. (또는 적어도 내가 찾은 유일한 방법입니다. 공장).webpack을 사용할 때 직접 경로로드

더 좋은 방법이 있나요?

꽤 해킹 된 해결책이있는 similar question입니다. 그 이후로 어떤 것이 바뀌 었습니까?

+0

'#/signin' *은 * 루트 경로입니다. 해시 및 그 이후의 모든 것은 서버로 보내지지 않습니다. 붙여 넣은 URL은 서버에 http : // localhost : 8000 /'로 표시됩니다. –

+0

예, React가 #/signin 해시를 감지하고 signin 구성 요소가 포함 된 해당 경로를 렌더링해야합니다 (webpack을 사용하지 않을 때와 동일). – chris

+0

React는 라우팅 기능을 제공하지 않습니다. [react-router] (https://github.com/rackt/react-router)와 같은 것을 사용하고 있습니까? –

답변

0

다음과 같은 의미입니까? localhost : 8000/webpack-dev-server /?

너무 다음과 같은 작업을해야합니다 :

  • 로컬 호스트 : 8000/웹팩-DEV-서버/index.html을
  • 로컬 호스트 : 8000/웹팩-DEV-서버/index.html을/#을/
  • 로그인했습니다

이가 iframe을하지 않고 작동합니다 :로그인 절차/8000/index.html을/# :

  • 로컬 호스트
  • 로컬 호스트 : 문제가 해결되지 않으면 8000/#이/

로그인의 이유는 바로 브라우저에 링크 주소를 복사하여 붙여 넣 로그인 페이지를 가리키는 링크를 클릭하지?

+0

URL로드가 어려울 수도 있습니다. 어쩌면 그것은 크롬 일이지만, 만약 내가 수동으로 URL을 변경하고 입력을 클릭하면 변경되지 않습니다,하지만 그때 나는 cmd-r 경로를로드합니다. 그러나'localhost : 8000/#/foo'와 같은 링크를 클릭하면 브라우저 URL이 바뀌지 않기 때문에 문제는 여전히 남아 있습니다. 이 때문에 브라우저 URL을 수동으로 설정하기가 어려워집니다. webpack을 사용하면 많은 양의 전체 페이지를 다시로드하지 못하도록 방지 할 수 있습니다. 링크에 webpack-dev-server 경로가 포함되어 있지 않은 문제입니까? 내 링크는 반응 라우터 링크 구성 요소로 생성됩니다. – chris

+0

게시 한 두 번째 링크 집합에 관해서는 작동하지만 webpack의 모든 이점 (파일을 동기화하지 않음)을 모두 사용합니다. 링크를 복사하여 브라우저에 붙여 넣는 것에 관해서는, 나는 아무것도 작동하지 않는다고 말하는 것이 아닙니다. 항상 힘들게 다시로드해야 할 때 생산성이 떨어지는 것입니다. – chris

+0

상자에서 원하는 것을 할 수 없다고 생각합니다. 앱이 iframe 내부에서 실행될 때 브라우저 URL 또는 기록을 업데이트하지 않습니다.내가 이해하지 못하는 이유는 앱을 테스트 할 때 webpack이 async-reloading을 할 필요가 있기 때문이다. async-reloading은 개발 중에 만 유용 할 것으로 기대됩니다. –

0

그 해결책은 webpack 경로와 테스트중인 해시가 포함 된 URL을로드하는 것입니다. http://localhost:8000/webpack-dev-server/#dashboard. 앱의 모든 링크에는 webpack-dev-server 경로가 없으므로이 작업은 수동으로 수행해야합니다.

이렇게하면 필요에 따라 페이지를 자주로드 할 수 있지만 가능한 경우 웹팩이 대부분의 핫로드를 수행 할 수 있습니다.