2012-04-12 61 views
1

我的css文件位於_layouts/MyProject/css/styles.css,我需要從後面的代碼註冊它。爲此,我應該使用CssRegistration.Register方法:SharePoint:註冊語言特定文件夾中的css文件

CssRegistration.Register("MyProject/css/styles.css"); 

但你會得到這個異常:

不能讓一個緩存安全的URL爲 「1033 /風格/ MyProject的/ CSS/Styles.css中」,文件未找到。請確認該文件存在於佈局目錄下。

因爲SharePoint期望特定語言文件夾中的css文件例如英文1033/styles

似乎沒有參數來關閉這種行爲!

在另一方面非常類似的任務,JavaScript文件的登記,支持這樣的要求,看到第三個參數localizable

ScriptLink.Register(Page, "MyProject/js/script.js", false); 

爲什麼2類邏輯同樣的事情有如此不同的接口?有沒有辦法如何註冊語言特定的文件夾中的CSS?或者唯一的辦法是將相同的css文件分發給這些LCID文件夾?

回答

2

您可以改爲創建一個新的CssRegistration控件並將其添加到頁面。然後包括「/ _layouts /」的路徑文件夾

CssRegistration cssRegistration = new CssRegistration 
{ 
    After = "corev4.css", 
    Name = "/_layouts/MyProject/css/styles.css" 
}; 
Controls.Add(cssRegistration); 
+0

真是很奇怪的是,類別(名稱)的屬性路徑支持_layout,但同一類的靜態輔助方法(註冊)不支持它。 Thx,這個解決方法有效。 – 2012-04-12 19:40:44

+0

沒問題。似乎總是有這樣的SharePoint怪癖... – skeletank 2012-04-12 19:42:53