단일 페이지 응용 프로그램을 만드는 과정에서 응용 프로그램 상태를 관리하기 위해 History.js를 사용하고 싶습니다. 나는 링크와보기가 적절하게 라우팅되는 것을 클릭하는 것으로 작업하는 한 원하는만큼 작업을합니다. 문제는 URL 경로가 변경된 화면을 새로 고침하는 경우입니다. 내 서버가 /를 캡처하고 서버에서 디렉토리를 찾으려고 시도했기 때문에 이것이 발생하는 이유를 알고 있습니다. 나는 #을 사용하기 전에이 문제에 결코 빠지지 않았다! 또는 # 클라이언트 측 매개 변수를 구분합니다.단일 페이지 응용 프로그램에 대한 History.js 사용
app.html/madeUpPage/
내 서버가 링크를 통해 새로 고침 또는 항목이 발생하면 madeUpPage 디렉토리를 찾기 위해 노력하고있다. HistoryJS가있는 클라이언트 쪽 단일 페이지 응용 프로그램에서 어떻게이 문제를 해결할 수 있습니까?
클라이언트로드 index.html을하고는 PARAMS을 구문 분석 및 URL의 구성이 예상대로 실행 내에는 포함 된 스크립팅 된 : 나는 역사와 그러나 History.options.html4Mode = true
도 window.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(){
});
});
});
나는이 스레드를 시도했다.