Further Reading
Where you go from here is up to you, the world is your router1
Ghost's dynamic routing system is an extremely powerful way to build advanced structures for your site, and it's hard to document every possible example of what can be done with it in comprehensive detail.
Detailed tutorials
While these docs cover simple examples and broad use-cases, you'll find more detailed and specific use-cases of how to build different types of publication in these tutorials:
- Build a multi-language site with Ghost
- How to make an iTunes Podcast RSS feed with Ghost
- Set up a business website with Ghost
- How to build specialised content hubs for Ghost
- Create an ongoing story with chronological posts
Head over to the Ghost tutorials section to find even more tutorials about how to build different types of theme and website with Ghost.
Limitations & troubleshooting
As you work further with dynamic routing it's worth keeping in mind that there are some limitations to what you're able to do with it. Here are a few of the most common areas where you'll find the edges of what's possible:
Slugs can conflict
Dynamic routing has no concept of what slugs are used in Ghost, and vice-versa. So if you create a route called /about/
and a page in Ghost called about
then one of them is going to work, but not both. You'll need to manage this manually.
Collections must be unique
If you have a collection filtering for posts tagged with camera
and another filtering for posts tagged with news
- then you will run into problems if a post is tagged with both camera
and news
. You should either trust your authors to use the correct tags, or base collections on properties which are always unique, like primary_tag
.
Trailing slashes are required
You probably noticed that all the examples here use trailing slashes on routes, which is because these are required for dynamic routing to function correctly.
FOOTNOTES
1: I'm so sorry