我有一个在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