據我所知(因爲坦白地說關於System.Web.Optimization
的文檔非常稀少),ASP.NET綁定的方式是註冊一組文件(Javascript或CSS,對應於ScriptBundle
和StyleBundle
),並將它們關聯起來與虛擬路徑;例如,所有jQuery UI腳本的~/bundles/jqueryui
。稍後,當您在非調試模式下運行時,ASP.NET可以縮小這些文件,縮小版本將在您爲該包指定的虛擬路徑上提供。ASP.NET捆綁 - 默認虛擬路徑?
默認的捆綁包設置註冊一些腳本捆綁包,其中~/bundles/...
作爲虛擬路徑,一些CSS作爲虛擬路徑包含~/Content/css
。我的問題是,這不是不一致嗎?有沒有像~/bundles/js/...
和~/bundles/css/...
這樣更有意義?實際上,~/Content
目錄實際上是作爲一個真實目錄存在的,所以甚至有名稱衝突的可能性。我以爲你會希望你的虛擬捆綁路徑是默認存在的不是的目錄,並且不打算在實際的文件系統上創建。有什麼理由爲什麼~/Content/css
用於我不理解的CSS包虛擬路徑?
謝謝,這個答案似乎可能是微軟這樣做的原因,我沒有想到它。我認爲如果他們使用'〜/ Content/cssBundles'和'〜/ Content/jsBundles'這樣的默認路徑,它會更加一致。 – Jez
@jez我在微軟的MVC團隊工作,所以我知道肯定:) – Eilon
現在有一個CssUrlRewriteTransform來解決這個問題。它會重寫CSS文件中的URL,因此它們與虛擬目錄相關,而不是原始目錄;這樣,儘管有CSS文件的新位置,它仍然可以在原始目錄中找到這些文件。 – Triynko