これは少し異なります。私たちの場合、DNS名はclient1.mycompany.com
です。すべてのDNS名は、IISのまったく同じ「Webサイト」で示されています。私たちのマスターページでは、サブドメイン(例:client1)を検出し、その内部クライアントIDを検索します。
また、私たちはクライアントのカスタムCSSとイメージを保持する "skins"ディレクトリを持っています。例:/Skins/34/custom.cssまたは/Skins/34/logo.png
マスターページには、顧客のルック・アンド・フィールを満たすために必要なオーバーライドを含む適切なCSSファイルが挿入されています。
たとえば、私たちのデフォルトのCSSファイルで、私たちのような定義を持っているかもしれませんが:
#customerLogo { background-image: url('/images/default.png');
、顧客固有のCSSファイルで、私たちのようなものがあります:
#customerLogo { background-image: url('/skins/34/logo.png') !important;
をこれが私たちのことができますカスタムファイルを使用して、デフォルトのcssクラス定義を上書きします。さらに、クライアントごとに完全なcssファイルを持たなくても、必要な特定の要素だけをオーバーライドすることができます。
うまくいくと、すべてのクライアントがリストされたデータベーステーブルと、外部キーとしてのclientIDと、必要に応じてカスタム値を持つ他のテーブルが必要になります。どのように聞こえる?実際には多くの場合、データ量とトラフィックに応じて、各クライアントごとに別々のデータベースを選択し、別々のDBサーバーに負荷を分散し、別々にバックアップ/リストア/変更することができます。 –
簡単でより直接的な方法は、各Webサイトごとに異なるCSSファイルを作成し、サーバー側にラベルを再作成することです。 –