3

私のサイトは WebAPI バックエンド上に構築されています... IIS 展開/サイト構造のために Uri が正しくフォーマットされていなかったため、展開時に問題が発生します

違う

http://itil.mysite.com/api/Building

http://itil.mysite.com/TestSite/api/building

だから私は http ヘルパーを変更して baseUri を含めました

    define(function () {
        var baseUri = window.AppPath;
        return {
            baseUri: baseUri,
            defaultJSONPCallbackParam: 'callback',
            get: function (url, query) {
                return $.ajax(baseUri + url, { data: query });
            },
     ...
     });

そして、私の Index.cshtml に以下を追加して、root/baseUri パスのセットを取得しました。

var AppPath = '@string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~"))';
console.log('AppPath: '+AppPath);

Index.cshtml: EG からコンソールにログを記録すると、baseUri パスは正しいです。

AppPath: http://itil.mysite.com/TestSite/ 

しかし、(デプロイされたインスタンスから) 実際の API 呼び出しを行うと、古い Uri が引き続き使用されます。

http.get('api/building').done(viewInit);

まだ間違っている

http://itil.mysite.com/api/building

次に考えたのは、ファイルを何らかの方法でキャッシュする必要があるということだったので、次のことを試しました。

  • IISを何度も再起動し、
  • 削除および再デプロイされたファイル
  • クロムでのキャッシュの無効化、
  • IIS での .js キャッシュの無効化 (ユーザーモードとカーネル モード)、
  • PCを再起動しました
  • ScriptBundle を変更して (より適切な言葉がないため) 同期を外してから、コードを追加し直しました。

Visual Studio 開発サーバーを使用するとコードは機能しますが、ローカルの IIS および Alpha テスト サイトで同じ問題が発生します...運が悪いです。

展開されたサイトのキャッシュをクリアするにはどうすればいいですか :/ これは、少しばかげているように思えるところまで来ています。私がそれを失っているか、「大物」が私を嫌っています。

4

1 に答える 1