0

jqueryとその他のライブラリ (特にjquery-ui )を使用する MVC4 Web アプリケーションがあります。

昨日、NuGetパッケージ マネージャーを使用してすべてのパッケージを更新することにしました。私の Web アプリケーションはローカル マシンでは正しく動作しましたが、それを Azure Web サイトに展開すると、ブラウザーに JavaScript エラーが表示されました (「$browser is not a function」のような jquery-ui ライブラリに関連していました)。

Web を検索したところ、このエラーの原因は、まだ古いバージョンの jquery を使用していることが原因であることがわかりました。ローカル プロジェクトで更新されたにもかかわらず、デプロイ プロセスで新しいバージョンの js ライブラリが公開されていないようです。

RDP経由でAzureマシンに接続し、「Scripts」フォルダーの内容を削除して再度デプロイする問題を解決しましたが、Azureにデプロイするときにスクリプト/ライブラリの更新を「強制」する方法があるかどうか疑問に思っています.


編集1 :ソース管理プロバイダーとしてMercurialを使用して、Visual Studio 2012で開発しています


編集 2 : Azure Web サイトにデプロイしています

4

1 に答える 1

0

今後の質問では、使用している Azure サービスの種類を明確に示してください。MVC4 Web アプリケーションは、Azure Web サイト、Azure クラウド サービス、Azure 仮想マシンの 3 種類のサービスにデプロイできます。

RDP について話しているので、実行可能なオプションはクラウド サービスまたは仮想マシンです。しかし、あなたは言います

RDP経由でAzureマシンに接続し、「Scripts」フォルダーの内容を削除して再度デプロイする問題を解決しましたが、Azureにデプロイするときにスクリプト/ライブラリの更新を「強制」する方法があるかどうか疑問に思っています.

問題は、Windows Azure にどのようにデプロイするかです。PublishAzure Cloud Service への Visual Studio の機能経由ですか。それは Visual Studio のPackage機能であり、他のデプロイ方法 (ポータルからパッケージをアップロードする、Azure PowerShell コマンドレットを使用する、またはサード パーティ ツールを使用してパッケージをデプロイする) を使用していますか? Mercurialとの統合で、チェックインすると自動でデプロイされるのですか?

いずれにせよ、あなたが直面している問題は、NuGET がすべての真のクリーンな更新を実行できないことが混在していることです。ブラウザーのキャッシュ - 特にローカル開発の場合 - IE はすべてのスクリプト、CSS、および画像をキャッシュするため、(ローカルにキャッシュされたすべてのファイルを明示的に削除しない限り) 実際に使用しているスクリプトを特定することは困難です。単純なバージョン管理の問題 - 古いスクリプトと新しいスクリプトを保持します。

JS/CSS の更新を行う場合、ローカルでテストする前に、最初にすべてのブラウザーのキャッシュ ( crtl+ shift+ - すべてのブラウザーで機能します) を削除することをすべてのお客様に強くお勧めします。del

クラウド サービスを使用している場合、RDP を使用してsitesrootフォルダー内の何かを削除すると、再展開時に役立つとは思えません。ROLEROOTドライブ (通常E:、場合によってはドライブ) で行うことは、使用する再展開方法 (インプレース アップグレードまたは完全な再展開) に関係なく、F:削除されたり忘れられたりします。re-deploy実際に行ったことは、新しいパッケージを作成し、新しいパッケージを再デプロイすることです。

一部のフォルダーを削除したという事実は、あなたのre-deploy行動には影響しません。

于 2013-07-23T10:41:21.977 に答える