1

私は、私の Mediawiki ウィキのユーザーが、好みに応じて独自のスキンを選択できるようにしようとしていますが、useskinパラメーターが URL に追加された場合、そのウィンドウ内のページに対して行われた後続の要求が持続することを保証します (つまり、ただし、パラメータが使用されていないページuseskinのキャッシュに干渉することはありません (つまり、パラメータを使用せずにページにアクセスしたユーザーには、useskinキャッシュされた URL が表示されずuseskin、その逆も同様です)。

useskinパラメータPersistUseskinを永続化するための拡張機能がありますが、個別のキャッシュを作成していないようです。

(私の目的は、私のサイトの iframe ナビゲーションで裸の肌を使用できるようにすることです (小さなスペースでより多くのページを表示できるようにするため)。ユーザーが私のサイトにアクセスしたときの肌の好みに干渉することはありません。)

ページ固有または名前空間固有のスキニングには興味がないことに注意してください ( In MediaWiki is there a way to force a group of pages to have a specific skin? で説明されているように)。ページに関係なく、そのウィンドウ (のみ) のスキニング情報を永続化する URL パラメーターが必要です。

4

1 に答える 1

2

ここで行う最も簡単な方法は、useskin パラメータの存在を検出し、UI に表示されるすべてのリンクに ?useskin= が URL に追加されるようにする Javascript を実際に記述することだと思います。これはおそらく、UI 内のすべてのリンクに useskin パラメータがあることを保証する最も軽量で簡単な方法です。これはまた、この動作を iframe に制限するのに役立つはずです。軽量の拡張機能を作成して JS を提供することも、 Mediawiki:Common.jsを使用して JS を保持することもできます。

「パラメーターが使用されていないページのキャッシュに干渉せずに」これを行いたいとおっしゃいました。どのようなキャッシングについて話しているのですか?squid や varnish などの基本的なリバース プロキシ キャッシュを使用している場合、それらは異なる URL を持つページを個別にキャッシュします。したがって、http://foo.com/index.phphttp://foo.com/index.php?useskin=awesomeは異なる方法でキャッシュされます。

于 2013-02-05T17:08:02.303 に答える