1

.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>

しかし、私のスクリプトは縮小されていません。

4

0 に答える 0