4

jqueryを使用したASP.netソリューションがあり、たとえば、一部のページでは次のように参照しています。

 <script type="text/javascript" src="Scripts/jquery-1.9.1.js"></script>
 <script type="text/javascript" src="Scripts/jquery-ui-1.10.2.js"></script>

問題は、Nuget が jquery へのソリューション参照をバージョン 2.0 に更新し、スクリプト参照を更新していないことです...これは他の JavaScript 参照にも起こりました...

これらのスクリプトを参照して、nuget がそれらを更新すると、関連するページ参照も更新されるようにするにはどうすればよいですか?

4

1 に答える 1

3

これは一種の間接的な答えですが、多くのシナリオで実行可能なソリューションです。


NuGet 更新ページ - 実行不可

Nuget がページ内の何かを更新できるとは思えません。これらのタイプの操作を実行するためのアクセス権があるとは思いません。また、それはおそらくかなり安全ではありません。


バンドルとワイルドカードの使用 - 実行可能

これが私が推奨するアプローチです。最適化パッケージが必要です (NuGet からダウンロードできます)。また、リクエストの量も減ります。これは常に素晴らしいことです。

基本的に、複数のスクリプト ファイルを結合できるようにするスクリプト「バンドル」を作成します (CSS でも機能します)。{version}以下は、ワイルドカードを使用したバンドルの例です。

public class BundleConfig 
{
    public static void RegisterBundles(BundleCollection bundles) 
    {
        bundles.Add(new ScriptBundle("~/bundles/jquery")
            .Include("Scripts/jquery-{version}.js"));

        bundles.Add(new ScriptBundle("~/bundles/jqueryui")
            .Include("Scripts/jquery-ui-{version}.js"));
     }
}

次に、Global.asax.cs の Application_Start メソッドにバンドルを登録します。

最後に、あなたはあなたを置き換えることができます

<script type="text/javascript" src="Scripts/jquery-1.9.1.js"></script>
<script type="text/javascript" src="Scripts/jquery-ui-1.10.2.js"></script>

<%: Scripts.Render("~bundles/jquery") %>
<%: Scripts.Render("~bundles/jqueryui") %>

これにより、フォルダー内の jQuery の最新バージョンが取得されて利用されるため、スクリプト参照を再度変更する必要はありません。

"~/bundles/jquery"文字列は好きなように呼び出すことができます。
: これは .NET 4.5+ でのみ機能します ( Kevin Johnsrudeに感謝します)
参照: Web フォームのバンドルと縮小

また、あなたはこれについて本当に質問していませんでしたが、私はそれについて言及する義務があると感じています. これらのスクリプト参照は、ブロック内の MasterPage に再配置<head>できます。これにより、コードの繰り返しを減らすことができます (そして DRY 原則に合わせることができます)。

于 2014-07-25T19:41:38.160 に答える