MVC4 StyleBundle 解決圖片問題
使用 MVC 的 StyleBundle 在子資料夾中引用時會出現問題。使用與實體內容路徑不對應的虛擬路徑定義套件時,CSS 檔案內的相對影像路徑會被破壞。
解決方案
正確的方法就是在與要組合的來源檔案相同的路徑上定義套件。例如:
bundles.Add(new StyleBundle("~/Content/css/jquery-ui/bundle") .Include("~/Content/css/jquery-ui/*.css"));
透過在與來源 CSS 檔案相同的路徑上定義套件,相對圖片路徑仍然有效。這是因為捆綁路徑的最後一部分實際上充當捆綁的 CSS 檔案的檔案名稱。
替代解決方案
根據Hao Kung 的建議,另一種方法是使用CssRewriteUrlTransformation 重寫捆綁CSS 中的圖像引用檔案:
bundles.Add(new StyleBundle("~/Content/css/jquery-ui/bundle") .Include("~/Content/css/jquery-ui/*.css", new CssRewriteUrlTransform()));
此轉換將自動修改相對影像路徑,以確保它們在捆綁後指向正確的位置。
注意
當使用 CssRewriteUrlTransformation,了解在虛擬目錄中重寫絕對路徑的潛在問題非常重要。此行為可能不適用於所有場景。以上是為什麼使用 MVC4 StyleBundles 時我的影像會損壞?的詳細內容。更多資訊請關注PHP中文網其他相關文章!