When I create a module
"skins.minerva.mainMenu.icons": { "class": "ResourceLoaderOOUIIconPackModule", "variants": [], "selectorWithoutVariant": ".mw-ui-icon-minerva-{name}:before", "defaultColor": "#4A4F53", "useDataURI": false, "icons": [ "userContributions" ], "images": { "login": { "file": { "ltr": "resources/skins.minerva.mainMenu.icons/logIn-ltr.svg", "rtl": "resources/skins.minerva.mainMenu.icons/logIn-rtl.svg" } }, "home": "resources/skins.minerva.mainMenu.icons/home.svg", "logout": { "file": { "ltr": "resources/skins.minerva.mainMenu.icons/logOut-ltr.svg", "rtl": "resources/skins.minerva.mainMenu.icons/logOut-rtl.svg" } }, "nearby": "resources/skins.minerva.mainMenu.icons/nearby.svg", "random": "resources/skins.minerva.mainMenu.icons/random.svg", "settings": "resources/skins.minerva.mainMenu.icons/settings.svg", "watchlist": "resources/skins.minerva.mainMenu.icons/watchlist.svg" } },
I get no complaints that icons and images can be mixed, but the files in images cause the following issue as they are assumed to be in core:
[f17d98ebb5c9164e792b9a01] /w/load.php?modules=skins.minerva.mainMenu.icons&image=settings&format=rasterized&skin=fallback&version=1s0p7 MWException from line 294 of /Users/jrobson/git/core/includes/resourceloader/ResourceLoaderImage.php: File '/Users/jrobson/git/core/resources/skins.minerva.mainMenu.icons/settings.svg' does not exist Backtrace: #0 /Users/jrobson/git/core/includes/resourceloader/ResourceLoader.php(1068): ResourceLoaderImage->getImageData(ResourceLoaderContext) #1 /Users/jrobson/git/core/includes/resourceloader/ResourceLoader.php(791): ResourceLoader->makeModuleResponse(ResourceLoaderContext, array, array) #2 /Users/jrobson/git/core/load.php(46): ResourceLoader->respond(ResourceLoaderContext) #3 {main}
In this situation we should either forbid the mixing of the values of update the path for the files (the latter would be very helpful for migrating ResourceLoaderImageModules which have icons that are not yet in OOUI!)