1

我试图让我的 Mediawiki wiki 的用户根据偏好维护自己选择的皮肤,同时确保如果将useskin参数添加到 URL,则对该窗口中页面的后续请求将持续存在(即, page 还将包含useskin参数等)——但不会干扰未使用参数的页面的缓存(即,访问页面的用户useskin不会看到缓存的 URL,useskin反之亦然)。

有一个持久化useskin参数PersistUseskin的扩展,但它似乎没有创建单独的缓存。

(我的目的是允许我的网站的 iframe 导航使用裸露的皮肤(因此可以在小空间中看到更多页面),而不会在用户访问我的网站时干扰用户的皮肤偏好。)

请注意,我对特定于页面或特定于名称空间的皮肤不感兴趣(正如在 MediaWiki 中讨论的那样,是否有一种方法可以强制一组页面具有特定的皮肤?)。我只是想要一个 URL 参数来永久保存该窗口的皮肤信息(仅),而不管页面如何。

4

1 回答 1

2

我怀疑这里最简单的做法实际上是编写一些 Javascript 来检测 useskin 参数的存在,然后确保 UI 中显示的每个链接都有 ?useskin= 附加到 URL。这可能是确保 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 回答