2013-03-21 19 views
7

ASPバンドルでスクリプトのバンドルと縮小に問題があります インターネット上にある一般的なソリューションを試しましたが、同じ問題があります。バンドルスクリプトがレンダリングされない

マイBundleConfig.cs

namespace MYPROJ{ 
public class BundleConfig 
{ 
    public static void AddDefaultIgnorePatterns(IgnoreList ignoreList) 
    { 
     if (ignoreList == null) 
      return; 
     ignoreList.Ignore("*.intellisense.js"); 
     ignoreList.Ignore("*-vsdoc.js"); 
     ignoreList.Ignore("*.debug.js", OptimizationMode.WhenEnabled); 
     ignoreList.Ignore("*.min.js", OptimizationMode.WhenDisabled); 
     ignoreList.Ignore("*.min.css", OptimizationMode.WhenDisabled); 
    } 

    public static void RegisterBundles(BundleCollection bundles) 
    { 
     bundles.IgnoreList.Clear(); 
     AddDefaultIgnorePatterns(bundles.IgnoreList); 

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

… 
… 

     //bundles.Add(new ScriptBundle("~/Scripts").Include("~/Scripts/jquery.unobtrusive-ajax.min.js", "~/Scripts/kendoui/kendo.all.min.js", "~/Scripts/kendoui/kendo.combobox.min.js", "~/Scripts/kendoui/kendo.grid.min.js")); 
     //bundles.Add(new ScriptBundle("~/Scripts").Include("~/Scripts/kendoui/kendo.all.min")); 
     //bundles.Add(new ScriptBundle("~/Scripts").Include("~/Scripts/kendoui/kendo.combobox.min")); 
     //bundles.Add(new ScriptBundle("~/Scripts").Include("~/Scripts/kendoui/kendo.grid.min.js"));    
     bundles.Add(new ScriptBundle("~/Scripts").IncludeDirectory("~/Scripts", "*.js").IncludeDirectory("~/Scripts/kendoui", "*.js")); 

     …… 
     BundleTable.EnableOptimizations = true; 
    } 
} 
} 

とマスタービューで次のようになります。

すべてのこの後の今
@Scripts.Render("~/Scripts") 

私はこのタグを取得する実行したとき:

<script src="/Scripts?v=ZnxC8dcoc3fJ-hfKQHLiTe19PjJFHwPhwHPUncuBtzE1"></script> 

とChromeを使用したときコードインスペクタ上記のリソースのステータスコードはStatus Code: 302 Foundです。 dのScripts/のですStatus Code: 404 Not Found

また、私はビューソースでそれをクリックしてもアクセスできないので、何もロードされていないように見えますが、すべてのファイルとディレクトリは正しく配置されます。 ちょうど情報のために、私のstyleSheetsバンドルはうまくいきます。

ありがとうございます。

答えて

8

バンドルに既存のディレクトリの名前も指定することはできません。バンドルの名前を変更するか、それが正常に動作させるために/jsを追加します。

bundles.Add(new ScriptBundle("~/Scripts/js").IncludeDirectory("~/Scripts", "*.js").IncludeDirectory("~/Scripts/kendoui", "*.js")); 

@Scripts.Render("~/Scripts/js") 

存在していない他の名前は、例えば、同様に動作します

bundles.Add(new ScriptBundle("~/ScriptMonkey").IncludeDirectory("~/Scripts", "*.js").IncludeDirectory("~/Scripts/kendoui", "*.js")); 

... /ScriptMonkeyディレクトリがないものとします。

2

バンドルの仮想パスに存在しないディレクトリを使用しようとしましたか?

...new ScriptBundle("~/bundle/Scripts")... 
1

要求を処理するかどうかを決定バンドルモジュールロジックと同様に、既存のファイルやディレクトリにない買収リクエストます。そのため、バンドルリクエストは、既存のディレクトリ(またはファイル)と同じ仮想パスに存在する場合には機能しません。

2

私には受け入れられた回答は機能しませんでした。 Visual Studio 2010 SP1でMVC 4.0を使用しています。 "jquery-ui.min.js"という名前のjsファイルがあり、ロードされていませんでした。マイBundle.configコードは:

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

私はjqueryの-ui.jsにファイルを名前を変更し、私はhereからこの情報を得た

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

として私のコードを更新しました。

関連する問題