Ok, there is a simple fix for this. Edit your /user/config/site.yaml and add this:
blog:
route: ''
As there is no blog.route set, it’s default to /blog as provided in the system/config/site.yaml and that is why it’s adding the /blog in the URL and losing the active state in the menu.
I was hoping this would also fix the problem where blog posts are not seen as children to the main blog page, so the blog menu items doesn’t get the active class. My blog post URLs look like this: /blog/what-if-photos-is-great.
Yah, those base_url value (current version of Antimatter) is built with site.blog.route. And that is defaulting to /blog in the system/config/site.yaml.
My fix was to override and set this value in your /user/config/site.yaml. I tested this and it worked.
I’ve actually changed Anitmatter for the next release so that this value will no longer be used. It will set base_url to page.url in blog.html.twig and set it to page.parent.url in item.html.twig. This will ensure you won’t need that site.blog.route to be provided going forward.
So to summarize, my fix does work, you may of just changed the wrong file, or changed it incorrectly. By changing the config file, it should automatically update the cache.