If you are not using a deployment system, you are doing it all wrong. But even a good deployment system can cause chaos if your directory structure is not correct. Lesson learned, do not symlink pub/ or vendor/ to outside the webroot. Magento uses a mix of absolute and relative pathing. Mixed with symlinks, this causes seemingly random issues i.e. admin URI injected as theme path in JS/CSS URL, JS/CSS file requests causing include errors which get kicked back as 500 with the Content-Type set to text/html.