0

.NET MVC 5アプリケーションでWeb最適化フレームワークのバンドルおよび縮小機能を使用しています。バンドルおよびマイニング - スクリプトがデバッグモードで参照されない

BundleConfig.cs:_Layout.cshtmlファイルで

public static void RegisterBundles(BundleCollection bundles) 
    { 

     bundles.Add(new ScriptBundle("~/bundles/home").Include(
        "~/Scripts/jquery-1.11.0.min.js", 
        "~/Scripts/bootstrap.min.js", 
        "~/Scripts/owl.carousel.min.js", 
        "~/Scripts/wow.min.js", 
        "~/Scripts/front.js")); 

    } 

私はこのようなバンドルを参照しています:

@Scripts.Render("~/bundles/home") 

これは、両方のサーバーですべての例外なしに、リリースモード、すなわちdebug = falseで動作します&クライアント側。

ただし、デバッグをtrueに設定すると、ページ内ではfront.js以外のスクリプトは参照されません。

私はApplication_Start()イベントにこれを追加してみましたが、私はまだ同じ問題が発生します。

<configuration> 
    <appSettings> 
    <add key="webpages:Version" value="3.0.0.0"/> 
    <add key="webpages:Enabled" value="false"/> 
    <add key="ClientValidationEnabled" value="true"/> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
    </appSettings> 
    <system.web> 
    <compilation debug="false" targetFramework="4.5.2"/> 
    <httpRuntime targetFramework="4.5.2"/> 
    <caching> 
     <outputCacheSettings> 
     <outputCacheProfiles> 
      <add name="Cache1Week" duration="604800" varyByParam="none"/> 
     </outputCacheProfiles> 
     </outputCacheSettings> 
    </caching> 
    </system.web> 
    <system.net> 
    <mailSettings> 
     <smtp from="[email protected]"> 
     <network host="localhost" port="25"/> 
     </smtp> 
    </mailSettings> 
    </system.net> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/> 
     <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/> 
     <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> 
     <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral"/> 
     <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0"/> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" culture="neutral"/> 
     <bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="1.0.0.0"/> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
    <system.codedom> 
    <compilers> 
     <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/> 
     <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/> 
    </compilers> 
    </system.codedom> 

</configuration> 
+0

Application_Start()ではなく、RegisterBundlesにifロジックを組み込みます。 –

+0

BundleConfigに入れようとしていますか?もしそうなら、それは違いをもたらさなかった。 – Esen

答えて

1

あなたからあなたのスクリプト参照を変更する必要があります:

ここ

#if DEBUG 
      BundleTable.EnableOptimizations = false; 
#else 
      BundleTable.EnableOptimizations = true; 
#endif 

Web.configファイルです

"~/Scripts/something.min.js", 

to:

"~/Scripts/something.js", 

debugはバンドラーが自動的に縮小さファイル(慣例something.min.jsを使用して)を探しますfalseです。それ以外の場合は、リストされたファイルを使用します。

バンドラを常に非拡張ファイルに設定します。 minifierはこれらを処理することができますが、あなたが縮小したコピーを指していれば縮小を元に戻すことはできません。

+0

ありがとうございます!私は、ファイルから 'min'部分を削除して動作しているため、このコンベンションではファイル名だけが表示され、内容は表示されません。 – Esen

+0

そうです。この慣例は、ファイル名と '.min.js'ファイルが既に入っているかどうかだけに適用されます。 – Amy

関連する問題