マルチテナントサイトの構築について
テーマ
マルチテナントサイトの構築について
- CSS共通化の是非
- 画像の参照について
はじめに
マルチテナントサイト配下でサイトを構築していく際に、 CSSは初期設定CSS(init.css)やパーツCSS(part.css)、サイト用個別CSS、エディタ用CSSなどがあるが、現状では各サイトに設置している。 サイト構築を通してシラサギを扱っていく中で、 比較的同じようなレイアウトやパーツ(モジュール)を作成することが多かったり、CSS的に共通設定を行うことが多い。 共通的なものは一元管理することで煩雑化を回避できたり作業工数を削減できるため、一元化できるのであれば一元化したい。 しかし、実際システム的に、そして業務的に問題がないかが懸念事項である。
事例
-
北海道庁のサイト https://www.ss-proj.org/case/831.html => 子サイトが多いため1サイトを作成して参照
-
AWAIRO https://www.ss-proj.org/case/587.html => 住んでみんでのCSSを使っている
CSSの共通化はそもそもルールとしてはあり
問題点
- サイトが無くなったりした場合にリンク切れが発生する可能性がある。
- ドキュメントがないと運用者が分からない可能性がある。
- 例えばポータルに共通CSSを置いておくとして、別の編集者の作業時に管理権限がないと編集できなくなる。セキュリティに厳しい案件だと不適合。
その他留意事項
ポータルが主軸であればいいが、 さらにサブで同じグループのサイトが複数ある場合はそのグループでCSSをまとめた方がよい場合もある。 共通画像などはあらかじめポータルサイトにフォルダを用意しておき、念頭に置いて作業を進める必要がある。
結論
まとめ
CSSなどの共通化をしてはいけないということはなく、メリットがある場合は前向きに採用する。 part.scssやinit.scssなどの初期化・初期設定CSSを共通化・汎用化して、ポータルサイトにファイルを配置して、サブサイトにて読み込み&上書きする運用ならありかもしれない。
実用に向けて
実際に採用する場合には上記問題点を回避できるように下記の点留意する。
- 共通CSS・画像は基本的にはなくなる可能性が低いと思われるサブサイトに設置する
- ドキュメントを用意する
- 案件によって採用の是非を切り分ける
開発チームからのコメント
ある程度整理が行われたら開発側で標準化も可能。 また、gitやgistを使ってノウハウを共通化していくのもいい。