2012-03-10 16 views
20

、私は合うように私のフォルダを再配置していますロブConeryのVidPub.Web exampleResolveBundleUrlがカスタムフォルダで機能しないのはなぜですか? (MVCベータ4)ブランドの新しいASP.NET MVC 4ベータ版のWebアプリケーションから

具体的には、このことは、コンテンツのルックスのための最終的なディレクトリ構造しかし、この

 
VidPub.Web 
| 
---Public 
    | 
    |---Images 
      |--- *.png 
    |---javascripts 
      |--- *.js 
    |---stylesheets 
     |----themes 
       |---base 
        |--- images 
        |--- *.css 
     |----site.css 

、のような私は

_Layout.cshtml

<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
      "~/Content/css")" 
      rel="stylesheet" 
      type="text/css" /> 

<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
      "~/Content/themes/base/css")" 
      rel="stylesheet" 
      type="text/css" /> 

<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
      "~/Scripts/js")"></script> 

に以下の行を変更したとき

<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
      "~/Public/stylesheets/css")" 
      rel="stylesheet" 
      type="text/css" /> 

<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
      "~/Public/stylesheets/themes/base/css")" 
      rel="stylesheet" 
      type="text/css" /> 

<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
      "~/Public/javascripts/js")"></script> 

結局のところ、結果のHTMLには何も含まれていません。

<link rel="stylesheet" type="text/css" /> 
<link rel="stylesheet" type="text/css" /> 
<script></script> 

なぜ新しい場所でファイルを取得しないのですか?

答えて

25

を固定し、特定のjsとcssファイルを追加します)。一方、EnableDefaultBundlesはあなた自身のバンドルを追加したときとほとんど同じです。

+1

正確に何が必要ですか?ありがとう。 – ashraf

+0

WOW!完全に人生の節約...私はこの投稿にコメントを追加する必要があると思うhttp://dotnet.learningtree.com/2012/03/26/streamlined-web-loading-in-the-visual-studio-11-beta /これについて著者に知らせる。 –

+1

これは受け入れられた回答よりも優れた選択肢です。ありがとう。 –

21

デフォルト以外のディレクトリを使用する場合は、独自のバンドルを登録する必要があります。 (私はApplication_Startに以下を追加し、それはあなたがRegisterTemplateBundlesのソースを見れば、あなたはそれが実際には探していることがわかります代わりにBundleTable.Bundles.RegisterTemplateBundles();

Global.asax.cs使用BundleTable.Bundles.EnableDefaultBundles();Application_Start下で問題

var bundle = new Bundle("~/Public/stylesheets/css", new CssMinify()); 
bundle.AddDirectory("~/Public/stylesheets", "*.css", true); 
BundleTable.Bundles.Add(bundle); 

bundle = new Bundle("~/Public/javascripts/js", new JsMinify()); 
bundle.AddDirectory("~/Public/javascripts", "*.js", true); 
BundleTable.Bundles.Add(bundle); 
+2

_Microsoft.AspNet.Web.Optimization.1.0.0-beta2_を使用すると、 'Bundle(...、new CssMinify())'を 'StyleBundle'と' new Bundle(...、new JsMinify() ) 'を' ScriptBundle'に設定します。 –

+1

* Microsoft.AspNet.Web.Optimization.1.0.0-beta2 * AddDirectoryはバンドルでサポートされなくなりました。 新しい修正は何ですか? – happyfirst

関連する問題