MediaWiki扩展Special页面JS仅移动端无法加载问题求助
问题排查与解决方案
针对你开发的MediaWiki扩展JS在移动端无法加载的问题,按以下步骤排查:
1. 确认PHP页面是否正确注册资源模块
打开SpecialArchiRecentChanges.php,检查execute方法中是否添加了资源模块调用:
$this->getOutput()->addModules( 'ext.archirecentchanges' );
这是最容易遗漏的环节——桌面端可能通过其他隐式方式加载资源,但移动端皮肤严格遵循显式注册规则,未添加这行代码会导致模块完全不加载。
2. 完善资源模块配置
修改extension.json中的ResourceModules节点,补充依赖和目标端声明:
"ResourceModules": { "ext.archirecentchanges": { "scripts": [ "js/archirecentchanges.js" ], "messages":[ "readthis" ], "dependencies": [ "mediawiki.base", "mediawiki.util" ], "targets": [ "desktop", "mobile" ] } }
dependencies:确保基础MediaWiki模块先加载,避免JS运行时依赖缺失targets:明确指定模块同时适配桌面和移动端,防止移动端皮肤自动过滤该模块
3. 清除MediaWiki资源缓存
移动端常因缓存旧资源包导致新模块无法加载,执行以下维护脚本强制刷新:
php maintenance/rebuildLocalisationCache.php php maintenance/purgeCache.php
也可直接访问站点的Special:Version页面,点击"Purge cache"按钮完成缓存清理。
4. 验证文件路径与权限
- 确认
js/archirecentchanges.js存在于扩展根目录,文件名大小写与配置一致(Linux服务器区分大小写) - 检查文件权限,确保Web服务器有读取权限(通常设置为
644)
5. 移动端网络请求排查
用手机浏览器的开发者工具查看网络请求:
- 搜索
ext.archirecentchanges相关请求,若返回404,说明路径配置错误 - 若请求未出现,回到步骤1和2确认模块注册是否生效
内容的提问来源于stack exchange,提问作者aphfug
相关产品推荐
相关产品推荐

