在 MediaWiki 的模板中编辑后,MediaWiki 不会刷新页面内容

After edit in templates of MediaWiki, MediaWiki is not refreshing the content of pages

如果我在 mediawiki 中对模板进行更改,效果不会显示在使用模板的页面上,直到我编辑页面并重新保存页面。如何反映所有其他页面的变化?

早些时候: [[问答::{{{问答|}}}]]

假设我将样式应用于模板中的元素:

[[琐事::{{{琐事|}}}]]

然后,使用此模板的页面中未显示更改。

当您像这样更改包含在许多页面上的模板时,MediaWiki 必须更新所有受影响的页面。但是,默认情况下它不会这样做,因为在默认配置中,当有人请求页面时,MediaWiki 仅 运行。如果 MediaWiki 在有人请求页面时必须更新数百个(或者在维基百科的情况下,数百万个)页面,那么该人的请求将需要很长时间才能完成。

相反,MediaWiki 有一个 "jobs" 的概念。作业可以由各种动作触发。例如,删除一个页面后,该页面的所有link必须由蓝色变为红色;更改模板中的类别后,所有嵌入该模板的页面都必须切换为使用新类别。 By default,MediaWiki 运行 每次页面查看都是其中一项作业。这对某些网站来说没问题,但根据您的使用模式,它可能无法足够快地更新所有页面。

为了解决这个问题,MediaWiki 引入了“job queue”。通过使用此作业队列,您可以在后台批处理 运行 个作业,因此可以快速完成作业,并且不会因必须处理作业而减慢请求速度。有关如何设置作业队列的信息,请参阅上面的 link。

其他解决方案是创建一个 cron 作业,它将 运行 来自 maintenance 目录的 runJobs.php 脚本,比方说,每小时一次(或或多或少地频繁,根据您的需求)。