2012-04-12 41 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

相关问题