2012-04-12 14 views
1

私のCSSファイルは_layouts/MyProject/css/styles.cssであり、コードの後ろから登録する必要があります。このために私はCssRegistration.Registerメソッドを使用する必要がありますSharePoint:言語固有のフォルダからCSSファイルを登録してください

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

をしかし、あなたは、この例外を取得します:

は "1033 /スタイル/ MyProjectと/ CSS/Styles.cssを" のキャッシュ安全なURL、ファイルを作成することはできません見つかりません。ファイルがレイアウトディレクトリの下に存在することを確認してください。

SharePointがcssファイルを言語固有のフォルダに入れると予想しているためです。英語の場合1033/styles

この動作をオフにするパラメータはありません。一方、非常によく似た作業に

、JavaScriptのファイルの登録は、そのような要件をサポートし、三番目のパラメータlocalizable参照:

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

をなぜ論理的に同じもののための2クラスはとても異なるインタフェースを持って?言語固有のフォルダからCSSを登録する方法はありますか?または、唯一の方法は、それらのLCIDフォルダに同じcssファイルを配布することですか?

答えて

2

代わりに、新しいCssRegistrationコントロールを作成してページに追加することもできます。

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

クラス(Name)のプロパティが_layoutをパスでサポートしているが、同じクラス(Register)のスタティックヘルパーメソッドがサポートしていないというのは本当に奇妙ですそれ。 Thx、この回避策は動作します。 –

+0

問題ありません。 SharePointでは常にこのような癖があるようです... – skeletank