Updates I make in navigation are not visible on other pages

Hello everyone.

I’m new to this forum and also new to SilverStripe.
My company acquired a couple of websites that have been made with SilverStripe so this is my first contact with it.

I’m having issues understanding how everything works here. I’ve read through hundreds of resources online but I’m unable to find a solution to this.

I updated a navigation menu (just removed a couple of items through the CMS) but no changes are visible on the website. Once I edit a random page, save and publish it, the updated menu is visible but only on the page I just edited. Is there a way to “propagate” the update throughout the website or I need to edit every single page manually in order to make the new menu visible? I’m sure there’s a simple answer to this but I’m unable to figure it out myself.

Huge thanks to anyone that takes a minute to help me out!

It sounds like there’s some caching in place, probably in the templates, and it’s not being expired properly. It’s hard to know for certain without seeing the template code.

What you could try, (assuming you have admin rights, since you’re in the CMS) is visiting the website and adding the flush parameter to the address, eg. https://example.com/?flush

This may be sufficient to clear the cache and refresh the navigation.

2 Likes

Thank you so much for taking time to respond.
I did try ?flush, ?flush=all and ?flush=1 but I get redirected to login page after that although I’m already logged in.

As Tim mentioned this is likely a result of partial template caching.

The best solution would be to fix the cache key so that your template caches are correctly invalidated when changing the menu. A useful tool for this is the keys for cache module which provides an intuitive way to define which objects should affect the cache key, and automatically updates the cache key when any of those objects are updated.

A short-term solution is to flush, as recommended. If you’re getting redirected to the login page, that suggests you might not be using an account with admin privileges, which are required to perform a flush when you’re in live mode.

Thank you so much Guy.

I’m not yet familiar with the procedure of installing modules but I double-checked my account and it seams like I have administrator privileges.

I’m also working on another silverstripe with the same privileges and am able to flush the cache normally.

Screenshot_2
Here’s the privileges page