【问题标题】:After edit in templates of MediaWiki, MediaWiki is not refreshing the content of pages在 MediaWiki 的模板中编辑后,MediaWiki 不刷新页面内容
【发布时间】:2017-07-19 08:43:15
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: mediawiki mediawiki-templates semantic-mediawiki


【解决方案1】:

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

相反,MediaWiki 有一个“工作”的概念。作业可以由各种操作触发。例如,删除一个页面后,该页面的所有链接必须从蓝色变为红色;并且在更改模板中的类别后,包含该模板的所有页面都必须切换到使用新类别。 By default,MediaWiki 在每个页面视图中运行其中一项作业。这对于某些网站来说是可以的,但根据您的使用模式,它可能无法以足够快的速度更新所有页面。

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

【讨论】:

  • 谢谢,我也会这样做
【解决方案2】:

其他解决方案是创建一个 cron 作业,该作业将从 maintenance 目录运行 runJobs.php 脚本,比如说,每小时一次(或多或少,根据您的需要)。

【讨论】:

  • 欢迎来到 Stack Overflow!这没有提供问题的答案。一旦您有足够的声誉,您就可以对任何帖子发表评论;相反,提供不需要提问者澄清的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多