2011-10-04 417 views
6

我有與當前的結構相對路徑

My Project 
    /Content 
    /Controller 
    /View 
    /Model 
    /Areas 
    /Area1 
     /View 
     /Controller 
     /Model 
    /Area2 
     /View 
     /Controller 
     /Model 

的所有面積的觀點的一個項目使用的根共享該根內容引用下一個CSS文件_layout視圖目錄。 內容文件夾下的CSS文件引用圖像或其他內容具有相同的目錄象下面這樣:

.box-shadow 
{ 
    -webkit-box-shadow: 0px 5px 80px #505050; 
    -moz-box-shadow: 0px 5px 80px #505050; 
    box-shadow: 0px 5px 80px #505050; 
    behavior: url('../Content/PIE.htc'); 
} 

當我訪問所有這一切都正常工作的「http:// MyProject的/控制器/動作」,但是當我進入了一個區域'http:// root/area/controller/action',我的css文件無法找到路徑'../Content/PIE.htc'。

我不知道如何去解決這個問題,所以我想知道是否有人知道解決這個問題的方法。

謝謝!

+0

'.htc'?是不是一些IE瀏覽器特定的廢話,它有一個錯誤,而不是相對於它使用相對於當前網址的CSS路徑的當前位置? –

+0

您是否嘗試過沒有「../」。如果您的css文件在內容文件夾中,則不應使用「../」。 – Tobias

+0

是的這就是它在做什麼@DarinDimitrov – zSynopsis

回答

2

如果在所有領域的所有觀點都是用root共享_layout(〜/查看/共享/ _Layout.cshtml),請確保調用_Layout.cshtml CSS文件如下面的代碼:

<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> 

我用MVC 3測試它,它工作。

+0

它是在CSS中引用的文件路徑,這是問題。我可以正確地獲取到css文件的路徑。 – zSynopsis

+1

這對我有效,謝謝。 –

1

上有此兩個有用的SO職位:css3pie in MVC, where to place the pie.htc file?where do I put the PIE.htc file (for making IE work with CSS3) when I'm using cakephp,以及PIE網站有discussion about it太:

IE解釋的URL,相對於源HTML文檔的行爲屬性,而不是相對CSS文件像其他所有CSS屬性一樣。這使得調用PIE行爲不方便,因爲URL必須或者是:

從域根絕對 - 這使得CSS目錄

相對於HTML文檔之間不易移動的 - 這使得CSS不容易在不同的HTML文件之間重複使用。

我最好的想法到目前爲止是有你放置PIE.htc文件一個CSS目錄網站範圍,並使用絕對路徑功能吧。不是很好,但並不可怕。