2016-08-02 21 views
0

단일 페이지 응용 프로그램을 만드는 과정에서 응용 프로그램 상태를 관리하기 위해 History.js를 사용하고 싶습니다. 나는 링크와보기가 적절하게 라우팅되는 것을 클릭하는 것으로 작업하는 한 원하는만큼 작업을합니다. 문제는 URL 경로가 변경된 화면을 새로 고침하는 경우입니다. 내 서버가 /를 캡처하고 서버에서 디렉토리를 찾으려고 시도했기 때문에 이것이 발생하는 이유를 알고 있습니다. 나는 #을 사용하기 전에이 문제에 결코 빠지지 않았다! 또는 # 클라이언트 측 매개 변수를 구분합니다.단일 페이지 응용 프로그램에 대한 History.js 사용

app.html/madeUpPage/

내 서버가 링크를 통해 새로 고침 또는 항목이 발생하면 madeUpPage 디렉토리를 찾기 위해 노력하고있다

. HistoryJS가있는 클라이언트 쪽 단일 페이지 응용 프로그램에서 어떻게이 문제를 해결할 수 있습니까?

클라이언트로드 index.html을하고는 PARAMS을 구문 분석 및 URL의 구성이 예상대로 실행 내에는 포함 된 스크립팅 된 : 나는 역사와 그러나 History.options.html4Mode = truewindow.History = { options: { html4Mode: true} }을 시도

app.html #의 madeUpPage. js v1.8b2 이것은 나에게 효과가없는 것 같습니다. 도움을 제공 할 수있는 사람에게 Force html4 fallback in history.js

감사 :

'use strict'; 
window.History = {options: {html4Mode: true} }; 
require(['js/client-config.js', 
     'js/lib/history-nativejs.js',  // History.js in raw JavaScript, very nice 3rd party utility... used for routing 
     'js/lib/libweb-ui.js', 
     'js/lib/libweb-ajax.js', // LibWeb ajax 
     'js/lib/libweb-jsml.js', // This is the file needed for JSML to run, parse and render your application (main core file) 
     'js/model.js', 
     'js/portfolio.js', // Main class containing viewstate 
     'js/global.js', // The global view model shared for all views in the SPA 
     'js/index.js', // The initial payload required to load the default application content (index/default.js) 
     'js/router.js', 
     'js/layout.js', 
     ], // This takes the raw JavaScript objects places them how they will appear in the layout (the "master page") 


      function coreScriptsLoadedSuccess() { 

      require(['js/controller.js'], function(){ 

       var appController = new PortfolioClientController(defaultAppState); 

       require(['js/events.js'], function domLoadSuccess(){ 
       }); 

      }); 
}); 

나는이 스레드를 시도했다.

답변

0

? 역사를 통해 URL에 푸시 스테이트에서 JS이 문제를 해결했습니다! 그래서 대신

..

**Before** 

click (()=> History.pushState({ 
      route: route 
      }, document.title + ' '+ route, 
      route); 
**Now** 

click (()=> History.pushState({ 
      route: route 
      }, document.title + ' '+ route, 
      `?view=${route}`);