2016-04-21 43 views
1

這些文件自動捆綁在一個MVC項目中。我在VS 2013中創建了一個新的MVC測試項目,並且驗證了下面列出的項目,而不是BundleConfig中添加的明確項目,並且已經在bundles.Add()方法中列出的項目之前自動包含在bundle中。這些js和css文件如何從我的項目中排除?

在BundleConfig的RegisterBundles()方法的第一行中設置一個斷點,在將其他明確列出的文件添加到捆綁包之前,按文件順序顯示它們。奇怪的是,捆綁的數量是0,但是按照文件順序列出了7個。這也支持這樣一個事實,即它們是由Visual Studio在「幕後」添加的,因爲在C#代碼中添加文件之前,文件在那裏。

其中大多數不在BundleConfig中列出,並且不會在使用IE的開發人員工具的網絡活動中顯示。看起來他們應該出現在網絡流量中。如果有人知道,我會對他們爲什麼不出現的解釋感興趣。

儘管這是Clear()的意圖,但在下面的方法的第一行調用bundles.Clear()並沒有刪除包含的Visual Studio。看來微軟決定不應該清除它們。

這些可能無法刪除,但我想看看是否有人知道如何去做。我們在生產應用中並不需要所有這些應用,如果可能,我想省略一些應用。

public class BundleConfig 
{ 
    // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862 
    public static void RegisterBundles(BundleCollection bundles) 
    { 
     bundles.Clear(); 

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

     // Use the development version of Modernizr to develop with and learn from. Then, when you're 
     // ready for production, use the build tool at http://modernizr.com to pick only the tests you need. 
     //bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
       // "~/Scripts/modernizr-*")); 

     bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
        "~/Scripts/bootstrap.js", 
        "~/Scripts/respond.js")); 

     bundles.Add(new StyleBundle("~/Content/css").Include(
        "~/Content/bootstrap.css", 
        "~/Content/site.css")); 

    } 
} 

在束之前明確地加入其它文件在C#以上:

  • respond.js
  • jszip.min.js
  • reset.css
  • normalize.css
  • modernizr- *
  • dojo。*
  • mootols芯*
  • mootools- *
  • 的prototype.js
  • protoype- *
  • scriptaculous- *
  • ext.js
  • 外部 - *

上市文件在開發人員工具中不包括以上大部分內容:

  • bootstrap.css
  • 的site.css
  • 現代化主義-2.6.2.js
  • 的jquery-1.10.2.js
  • bootstrap.js
  • respond.js
+0

您需要在.Add調用之後調用bundle.Clear()...或者只刪除這些行並刪除這些文件? – raven

+0

我想要Clear()後的那些,但不是那些VS讓我使用的,這就是爲什麼它在當前位置。這是爲了清除微軟決定需要的東西。 – user3692334

回答

1

這些不是你的捆綁包的一部分。您正在查看的BundleCollection.FileSetOrderList Property其中:

獲取一個列表,指定默認文件順序以用於註冊捆綁中的文件。

Screenshot from a default project

正如你提到的,捆數爲0。這些文件不會被添加「幕後」,除非你明確地將它們包含在你的包。現場背後將發生的是,這些文件將在綁定發生時在您自己的文件之前排序。儘管如果你需要,你也可以指定你自己的訂單。

重新排序捆綁包是捆綁/縮小功能的一部分。還有更多的細節,包括定義訂購in this SO question and answer的代碼。

+0

感謝您的詳細解釋,這是對這些工作的描述是正確的,但沒有解決我想要做的事情。我想刪除在添加文件之前在文件順序列表中設置的文件。例如,我不希望現代化裝置在那裏。它可能無法刪除像modernizer框架所包含的那些。 – user3692334

+0

@ user3692334我的觀點是,它不會添加文件,除非您明確地將它們添加到一個包中。也許你註釋掉了這個包(根據上面的代碼),但忘記刪除_layout.cshtml文件中的引用了? '@ Scripts.Render(「〜/ bundles/modernizr」)'所以你認爲它仍然存在? (它仍然會以調試模式呈現HTML,但會返回404)。如果您不想在那裏使用modernizer,請將其從捆綁中刪除,然後刪除這些文件。如果他們不在那裏,它不能包含文件。 – MikeSmithDev

+0

VS不會讓你使用任何東西......它使用你告訴它使用的東西。就像我的回答指出的那樣,這7個文件不是你的軟件包的一部分。這是一個指定文件順序的列表。 – MikeSmithDev

相關問題