我试图允许我的Mediawiki wiki用户按优先级保留自己的皮肤选择,同时确保如果useskin
参数添加到URL,则对该窗口中页面的后续请求将持久化(即页面上的URL也将包含useskin
参数等) - 但不会干扰未使用参数的页面的缓存(即访问没有{{的页面的用户1}}将看不到使用useskin
缓存的网址,反之亦然。)
有一个扩展名可以保留useskin
参数PersistUseskin,但它似乎不会创建单独的缓存。
(我的目的是允许我网站的iframe导航使用裸露的皮肤(因此可以在较小的空间中看到更多的页面),而不会在用户访问我的网站时干扰用户的皮肤偏好。)
请注意,我对特定于页面或特定于命名空间的蒙皮感兴趣(如In MediaWiki is there a way to force a group of pages to have a particular skin?中所述)。我只想要一个URL参数来保持该窗口的皮肤信息(仅限于),无论页面如何。
答案 0 :(得分:1)
我怀疑在这里做的最简单的事情实际上是编写一些检测usekin参数存在的Javascript,然后确保UI中显示的每个链接都有?useskin =附加到URL。这可能是确保UI中所有链接都具有useskin参数的最轻量级/最简单的方法。这也应该有助于将此行为限制为iframe。您可以创建一个lightweight extension来提供JS,或者您甚至可以使用Mediawiki:Common.js来保存JS。
你提到你想要这样做,而不会干扰未使用参数的页面的缓存。你在说什么样的缓存?如果您使用的是基本的反向代理缓存,例如squid或varnish,它们自然会独立地缓存具有不同URL的页面。因此,http://foo.com/index.php和http://foo.com/index.php?useskin=awesome的缓存方式会有所不同。