I'm not sure if this is an issue with partial caching or my understanfing of it. If I put a cached block in my Layout/Page.ss it caches the first content loaded for that pagetype and not for that specific page. So any page of that pagetype shows the same content unless I flush the cache
We've moved the forum!
Please use forum.silverstripe.org for any new questions
(announcement).
The forum archive will stick around, but will be read only.
You can also use our Slack channel
or StackOverflow to ask for help.
Check out our community overview for more options to contribute.
Have a look at the documentation for partial caching.
If you don't provide a key that is specific to that page, then the cache block will be the same across pages.
Just wondering if useing something like <% cached $URLSegment, LastEdited %> is the best way to handle partial caching on pages or should the key be genreated from a cusotm function?
Depends on what you're doing, but I find that most page types which are either pulling the current page's $Content, $Title etc, or from another page, or generating a menu, this key seems to work well:
<% cached 'mycachekey', ID, List(Page).max(LastEdited) %>
... content goes here
<% end_cached %>
The cache is invalidated by page ID, and whether any Page or subclass on the site has been modified.
Obviously if you have a lot of special template controls, or time based data inside the cacheblock, you'll want to generate the key from a custom function instead.
Sean