5

Visual Studio 2012とビルトインテンプレート([追加] - > [新規プロジェクト])を使用して、新しいASP.NET WebフォームWebアプリケーションプロジェクトを作成しました。デフォルトで提供されているSite.Masterページの中には、以下に含まれるJQueryを対象としたマークアップがいくつか表示されています。ASP.NET Webフォーム4.5でJQueryをバンドルする

次のマークアップを考えれば、ASP.NETはJQueryを組み込むために必要なパスをどのように把握しますか?

<asp:ScriptManager runat="server"> 
    <Scripts> 
     <%--Framework Scripts--%> 
     <asp:ScriptReference Name="MsAjaxBundle" /> 
     <asp:ScriptReference Name="jquery" /> 
     <asp:ScriptReference Name="jquery.ui.combined" /> 
     <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" /> 
     <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" /> 
     <asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" /> 
     <asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" /> 
     <asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" /> 
     <asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" /> 
     <asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" /> 
     <asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" /> 
     <asp:ScriptReference Name="WebFormsBundle" /> 
     <%--Site Scripts--%> 
    </Scripts> 
</asp:ScriptManager> 

私はどこでも「〜/スクリプト/ jqueryの - 1.7.1.js」にjqueryのを解決します設定ファイルやコードが表示されません。私はpackages.configファイルを見ていますが、何とか計算しなければならないパスを明示的に記述していません。

誰かがJQueryのjavascriptファイルへのパスが実行時に解決される方法を知っていますか? Microsoft.ScriptManager.WebForms PreAppStartCodeインサイド

+0

あなたのソリューションのどこかに "scripts"フォルダがありませんか? – Thousand

+0

ここであなたの他の質問を見て:http://stackoverflow.com/questions/12290537/vs2012-web-forms-bundling-confusion答えは私が考えるいくつかの明確化を提供するようです。答えは、パッケージがjQueryファイルをスクリプトフォルダに置くことを示しています。これらのファイルは、それ以降の参照を必要とせずに実行時に自動的に追加されます。 – Nope

+0

Jane:はい私はそこにすべてのJQueryのjavascriptファイルを持ったスクリプトフォルダを持っています...しかし、私の質問はこのディレクトリへのパスがどのように生成されるかです。 – ClearCloud8

答えて

2

、それはあります

 System.Web.UI.ScriptManager.ScriptResourceMapping.AddDefinition("WebFormsBundle", new ScriptResourceDefinition 
     { 
      Path = "~/bundles/WebFormsJs", 
      CdnPath = "http://ajax.aspnetcdn.com/ajax/4.5/6/WebFormsBundle.js", 
      LoadSuccessExpression="window.WebForm_PostBackOptions", 
      CdnSupportsSecureConnection = true 
     }); 

これは、スクリプト参照の宣言までフックです:

<asp:ScriptReference Name="WebFormsBundle" />

も重複排除を行いますScriptReferenceのパスがBundleConfig.cs内に登録されるバンドル内のファイルのパスと同じであるため、

+2

'Microsoft.ScriptManager.WebForms.dll'を' Start() 'メソッドに反映させると、これがどこにあるのか不思議な人にとっては、 – maxp

+0

BundleConfig.csとScriptManagerにwebformsbundleがある理由はまだ分かりません。あなたは "重複排除"のためだと言いますが、それはどういう意味ですか?何の重複排除?なぜ2回定義されているのですか?これは馬鹿げたようです。 – Matt