My composer build D8/CiviCRM instance looks great on my local server where I built it - but then when I add it all to git and push it to a production server -> it looks like this: menus are messed up and CiviCRM is not able to find its own extension directory that it ships with.
When you install D8/CiviCRM with Composer you end up with CiviCRM's
.gitignore file in the
vendor/civicrm/civicrm-core directory. Renaming that
.gitignore outoftheway solves the problem. No
civicrm.settings.php file edits required! Of course you can be more selective but think of not ignoring
bower_components as well as the
/ext -> that's what solved this issue instantly.