これが最善のアプローチかどうかはわかりませんが、これは私がやっていることです。私はこれに似たフォルダ構造があります。
/Content
layout.css
/Content/Images
/Content/Themes/ThemeUSA
layout.css
/Content/Themes/ThemeUSA/Images
をそれから私は、画像のために例えば正しいパスを返すために、ヘルパー拡張機能を使用します。
<img src="@Url.Image(Model.EnhImg)" alt="@Model.EnhImgAlt" />
public static string Image(this UrlHelper helper, string fileName)
{
string sLocation = Content() + "images/" + fileName;
return helper.Content(sLocation);
}
private static string Content()
{
string sLocation = "~/content/";
string sTheme = (string)HttpContext.Current.Session["Theme"];
if (!String.IsNullOrEmpty(sTheme))
{
sLocation += "themes/" +sTheme + "/";
}
return sLocation;
}
イメージでテーマフォルダはデフォルトフォルダと同じ名前です。スタイルシートでも同じです。
なぜなら、国以外の特定のスタイルを保持する共通のCSSファイルを持っているだけではないのです。国を検出すると、英国の国コードが英国であるとし、特定のgb.cssをインポートして、ベースCSSの上に適用します。 – carpii
実際に私のサイトのレイアウトは変更されません。私はイメージのテーマを変更することができます変更することができます。ですから、イメージフォルダ(theme1、theme2など)を作成してから、これらのイメージをロードできますか?しかし、CSSを動的に変更することは可能ですか?例:私はCSSファイルで書かれた変更イメージパスを持っています –