2013-12-13 85 views
5

在我_layout頁,以下工作:捆綁樣式不工作,但直鏈接標記工作

<link rel="stylesheet" href="@Url.Content("~/Kendo/Content/kendo/2013.2.918/kendo.common.min.css")"    /> 
<link rel="stylesheet" href="@Url.Content("~/Kendo/Content/kendo/2013.2.918/kendo.blueopal.min.css")"   /> 
<link rel="stylesheet" href="@Url.Content("~/Kendo/Content/kendo/2013.2.918/kendo.dataviz.min.css")"   /> 
<link rel="stylesheet" href="@Url.Content("~/Kendo/Content/kendo/2013.2.918/kendo.dataviz.blueopal.min.css")" /> 

這不起作用(樣式也得到應用,但是在CSS別引用的圖像」噸渲染):

@ Styles.Render( 「〜/捆綁/ kendoStyle」)

這裏的捆綁DEF在App_start - > BundleConfig.cs:

 //Kendo Styles: 
     bundles.Add(new StyleBundle("~/bundles/kendoStyle").Include(
      "~/Kendo/Content/kendo/2013.2.918/kendo.common.min.css" 
     , "~/Kendo/Content/kendo/2013.2.918/kendo.blueopal.min.css" 
     , "~/Kendo/Content/kendo/2013.2.918/kendo.dataviz.min.css" 
     , "~/Kendo/Content/kendo/2013.2.918/kendo.dataviz.blueopal.min.css" 
      //, "~/Kendo/Content/contextMenu.css" 
     )); 

我在做什麼錯在這裏? (請注意,「劍道」是設置爲下我的主要網站的mvc4.5 web應用程序

回答

7

圖片的路徑是相對於在styesheets所在的文件夾。例如,圖像可能會像這樣被引用:

.k-icon { 
    background-image: url('BlueOpal/sprite.png'); 
} 

因爲你的包重新定義路徑到您的樣式表,瀏覽器嘗試從下載圖像〜/包/ BlueOpal/sprite.png,它不存在。到圖像的實際路徑是〜 /Kendo/Content/kendo/2013.2.918/BlueOpal/sprite.png

因爲相對路徑正確指向服務器上的映像,所以當您直接鏈接到樣式表(無需綁定)時,一切正常。但是,由於您的包重新定義了樣式表所在的虛擬路徑,圖像的相對路徑不再有效。

如果你想使用一個包,你必須用一個不會破壞樣式表中相對圖像路徑的路徑來定義它。在你的情況下,由於KendoUI樣式表位於〜/劍道/內容/劍道/ 2013.2.918,你應該用相同的路徑定義包:

bundles.Add(new StyleBundle("~/Kendo/Content/kendo/2013.2.918/bundle").Include(
    "~/Kendo/Content/kendo/2013.2.918/kendo.common.min.css", 
    "~/Kendo/Content/kendo/2013.2.918/kendo.blueopal.min.css", 
    "~/Kendo/Content/kendo/2013.2.918/kendo.dataviz.min.css", 
    "~/Kendo/Content/kendo/2013.2.918/kendo.dataviz.blueopal.min.css" 
)); 

我希望幫助。

+0

優秀的解釋!但是,當我做出改變時,風格完全消失。我相信我們真的很接近。 2個提醒,其中一個,「劍道」是我的主要網站下的一個「網絡應用程序」(我認爲這不重要)。其次,通過F12 - >「網絡抽頭」,我看到新的包得到了404找不到的響應。另外,當我回到我原來的捆綁def(使用F12)時,我手動輸入「〜/ Kendo/Content/kendo/2013.2.918/BlueOpal/sprite.png以使其運行沒有路徑前面的「/」圖片不會受到欺騙) – DotNet98

+0

好的,事情變得有趣起來;所以「Kendo」是我的網站下的一個虛擬目錄/ web應用程序,這裏有一個鏈接,表示軟件包名稱和目錄結構應該是明顯的:http://stackoverflow.com/questions/15540528/bundling-scripts-are-not-getting-rendered?rq=1我想這是一個完整的顯示限制,在添加Kendo作爲我的網站下的Web應用程序並使用捆綁來加載它,這真的是一個恥辱 – DotNet98

0

嗨,我同樣的問題。但我看到該頁面能夠獲取精靈文件,但沒有顯示一些符號。臨時解決方案已將套件EnableOptimizations屬性設置爲false。

BundleTable.EnableOptimizations = False