Загрузка js в расширении MediaWiki не работает
Я собираюсь создать расширение для MediaWiki, в котором я хочу предоставить специальную страницу, которая показывает форму. Для этой формы я хочу использовать Bootstrap, включая jquery и popper.js. Поэтому мне нужно включить файлы js в расширение.
Обычно файлы стилей и скриптов включены в extension.json
как это:
"ResourceModules": {
"ext.meForm.custom": {
"position": "top",
"scripts": [
"jquery-3.3.1.slim.min.js",
"popper.min.js",
"bootstrap.min.js",
"ext.meForm.custom.js"
],
"styles": [
"bootstrap.min.css",
"icons.css",
"ext.meForm.custom.css"
]
}
},
И тогда их нужно загрузить на специальную страницу execution
метод как это:
$output->addModuleScripts('ext.meForm.custom');
$output->addModuleStyles('ext.meForm.custom');
Когда я включаю только файлы стилей (просто удалите scripts
свойство), то стили применяются, как и ожидалось. Но когда я добавляю script
свойство, не только сценарии не применяются, но и стили больше не применяются. Похоже, что я делаю что-то не так в определении модуля, но я понятия не имею, что.
У кого-нибудь есть какие-нибудь подсказки или идеи?
Привет, Якоб
Редактировать: я забыл упомянуть, что кажется, что это не имеет ничего общего с js-файлами jquery, popper или bootstrap, потому что он ведет себя так же, когда я включаю только ext.meForm.custom.js
, который на самом деле просто пустой файл JS.
Единственный вывод консоли я получаю SyntaxError: expected expression, got '<'
от load.php
в строке 1.
Я использую Mediawiki версии 1.30.1.
Изменить: это работает сейчас. Похоже, проблема была в другом расширении, в котором произошла ошибка при загрузке. Я действительно не знаю, как это заставило бы мое расширение не загружать модули должным образом, но это сделало.
2 ответа
Это работает сейчас!
Похоже, проблема была в другом расширении, в котором произошла ошибка при загрузке. Я действительно не знаю, как это заставило бы мое расширение не загружать модули должным образом, но это сделало.
addModuleScripts
не очень полезно (также не рекомендуется). Пытаться $output->addModule('ext.meForm.custom');
,