15

ユーザーがカスタマイズしたスタイルを処理するための最良の方法は何ですか?私が探している結果の例として、これで十分です。

body {
   color: {{ user.profile.text_color }};
}

ただし、CSSをビューとして提供すると、常に要求されるファイルにかなりのオーバーヘッドが発生するように思われるため、これはおそらく適切なソリューションではありません。

ユーザーはCSSファイルにアクセスできないため、Web開発の知識がないと想定する必要があります。

4

3 に答える 3

15

ただし、CSSをビューとして提供すると、常に要求されるファイルにかなりのオーバーヘッドが発生するように思われるため、これはおそらく適切なソリューションではありません。

そして、そのCSSを一度生成するとしたらどうでしょうか。

  1. デフォルトのCSSは次のとおりです。/common/css.css
  2. メンバーはCSSをカスタマイズし、<link />要素はを指すようになりました/user-specific/123.css?ts=123123123123もちろん、はメンバーの識別子であり、tsパラメーターにはタイムスタンプ(CSSが最後に変更された日付)が含まれます
  3. CSSジェネレーターがクライアント側のキャッシュを担当する適切なHTTPヘッダーを設定していることを確認してください
  4. ユーザーブラウザがCSSファイルを要求します-サーバーは単純なヘッダーで応答します-304 Not Modifiedスクリプトの実行やコンテンツのダウンロードは必要ありません
  5. メンバーが自分のCSSを変更するときは、更新するだけです。tsもう一度、1つのリクエストだけが必要です。
于 2010-08-28T06:37:13.897 に答える
5

通常どおりビューを介してCSSを動的に実行しますが、ロードが速くなるように積極的なキャッシュを使用します。

于 2010-08-28T06:09:15.717 に答える
0

あなたはdjangomediageneratoを試すことができます、実際に私はこのQを読み、あなたのような解決策を探していました、そして私はそのDjango-mediageneratorを見つけました

私はまだ試していませんが、解決策になると思います。

于 2011-07-02T00:26:41.083 に答える