私はAureliaアプリケーションをAsp MVC Core 1.0で動作させています。このアプリは、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サイトの下にWebアプリケーションとしてデプロイされるため、ルートURLはserver.org/MyApp
です。アプリケーションは、罰金を起動するが、私は、コールthis.http.fetch('GetData')
を作るとき、それはserver.org/Home/GetData
代わりのserver.org/MyApp/Home/GetData
から要求し、明らかになぜMyApp
を無視してフェッチ要求される404
にもたらされますか?私は自分の.withBaseUrl
にスラッシュを付けていないと思ってURLを相対的に作るだろうが、明らかにそうではない?
私は同じ問題を抱えているので、これをちょうど微調整してください。私は現在、System.baseURLをモジュールに渡して、withBaseUrlの呼び出しのためにプリペンドすることができるかどうかを調べています。しかし、私はちょうど、アプリケーションが、そこからロードされたディレクトリを、作業のベースとして使用していないのはなぜですか。 –
それは基本的に私がやったことです。私は '@ Html.Hidden(" rootUrl "、Url.Content("〜 "))'を私のビューに入れました。私はその値を共有モジュールにロードしました: 'this.rootUrl = $( '#rootUrl')。val();'。次に、私のすべてのapi呼び出しに 'rootUrl'を追加しました。ひどくエレガントではありませんが、機能します。 – Jerrad