我有一個在Asp MVC Core 1.0下運行的Aurelia應用程序。該應用程序使用HttpClient調用控制器操作,該操作返回json數據。家庭控制器包含了所有的動作,和我配置HttpClient的,像這樣:如何使用Aurelia + .Net Core + IIS Web應用程序獲取正確的URL
http.configure(config => {
config
.useStandardConfiguration()
.withBaseUrl('Home/');
});
在運行Visual Studio中的應用程序,一切正常。它在localhost:55475
上託管,當我撥打this.http.fetch('GetData')
時,它向localhost:55475/Home/GetData
發送請求。
當我部署到IIS時,問題出現了。該應用程序作爲默認網站下的Web應用程序部署,因此根網址爲server.org/MyApp
。應用程序啓動時很好,但是當我撥打電話this.http.fetch('GetData')
,從server.org/Home/GetData
,而不是server.org/MyApp/Home/GetData
要求,這顯然導致404
爲什麼我的讀取請求忽略MyApp
?我認爲沒有在我的.withBaseUrl
上的主導斜線會使網址相對,但顯然不是?
只要輕輕一碰,就會得到同樣的問題。我目前正在研究如何將System.baseURL傳遞到模塊中,以便我可以預先調用它以調用withBaseUrl。但是,我只是不明白爲什麼應用程序沒有使用它加載的目錄作爲工作的基礎。 –
這就是我所做的。我在我的視圖中添加了@ Html.Hidden(「rootUrl」,Url.Content(「〜」))。然後我將該值加載到共享模塊中:'this.rootUrl = $('#rootUrl')。val();'。然後,我將'rootUrl'附加到我的所有API調用中。不是非常優雅,但它的作品。 – Jerrad