2014-02-10 127 views
1

在路由器配置中使用PushState :true時,我努力設置Durandal在IIS虛擬文件夾下運行。在IIS虛擬目錄下運行的Durandal MVC應用程序

貫穿說http://localhost:24567

時工作正常,但如果我http://localhost/testapp下運行(testapp爲虛擬文件夾),路線不工作,路徑鏈接是沒有虛擬文件夾「testapp」呈現

有沒有一種方法可以使用require.js配置或通過Durandal路由器來設置基本url?

感謝

回答

3

好,感覺有點愚蠢的,應該有RTFM!

激活路由器時有一個選項,特別是在使用推送狀態時。故事的

http://durandaljs.com/documentation/Using-The-Router.html

 router.map([ 
      { route: '', title:'Welcome', moduleId: 'viewmodels/welcome', nav: true }, 
      { route: 'flickr', moduleId: 'viewmodels/flickr', nav: true } 
     ]).buildNavigationModel(); 

     return router.activate({ pushState : true ,root:'/MvcApplication1'}); 

道德,更仔細閱讀本手冊。

感謝亞戈誰撰寫了迪朗達爾一個夢幻般的演示應用程序,其中包括會員/客戶端授權以及OAuth的登錄, Durandal Auth

+0

我有,只是我不使用按壓狀態類似的行爲。我只是嘗試部署由項目模板生成的Web,而不做任何更改。正如您所描述的,它在測試Web服務器提供服務時起作用。對我來說,啓動屏幕會顯示,但在IIS提供服務時會保留。 –

+0

彼得 - 也許試試這個(可能無關緊要的狀態)返回router.activate({root:'/ MvcApplication1'}); –

+0

我使用相同的示例代碼(DurandalAuth)並且遇到了上述相同的問題 - 加載屏幕保持打開狀態。通過打開開發工具,我可以看到問題是在本地IIS web服務器上部署示例之後,指向require.js文件的路徑錯誤。它使用http://localhost/Scripts/require.js而不是http://localhost/durandal/Scripts/require.js。即使將root設置爲root:'/ durandal'仍然無效。任何想法可以做什麼? –

相關問題