.NET 4.0 で MVC 4 アプリケーションを使用しています。私の Web ホスティング プロバイダー (ネットワーク ソリューション) には仮想ディレクトリが設定されているため、既定のバンドル動作を使用できません (と思います)。
私の _Layout ビューには、次の行があります。
@Scripts.Render("~/bundles/dd-d2")
BundleConfig.cs には
bundles.Add(new ScriptBundle("~/bundles/dd-d2").Include(
"~/Scripts/dd-d2.js"));
Visual Studio で実行すると、すべて正常に動作します。しかし、Web ホスティングにアップロードすると、バンドル パスの前に仮想フォルダーが追加されるため、ファイルが見つかりません。の代わりに/bundles/dd-d2?v=BlahBlah
、私は得る/ROOT_FOLDER/bundles/dd-d2?v=BlahBlah
これを_Layoutファイルの行に追加して、この問題を修正しました
@Scripts.Render(Url.Content("~/bundles/dd-d2"))
Url.Content ヘルパーは、仮想パスをアプリの絶対パスに変換し、バンドルされたスクリプト ファイルを見つけます。
今、私がそのアプローチで抱えている問題は、javascript ファイルに変更を加えた場合、出力されたバンドルされたスクリプト ファイルに反映されないことです。Webホスティングにアップロードしても、常に古い情報が含まれています. このファイルはどこかにキャッシュされていますか? これを行うより良い方法はありますか?バンドルを使用して、スクリプト ファイルの縮小を利用したいと考えています。
私がこのようにすれば、うまくいきます
<script src="@Url.Content("~/Scripts/dd-d2.js")" type="text/javascript"></script>
しかし、私のスクリプトは縮小されていません。