Open
Description
Certain Publishers of ours would like all pages to be hosted in a separate subdirectory.
For example, /foo
should be the homepage, /foo/section/slug
will be where the story pages are hosted.
Proposal
@quintype/framework should accept a parameter called "mountAt" which will control where it is mounted. All URLs should be set accordingly.
ex:
upstreamQuintypeRoutes(app, {
mountAt: "/foo",
forwardAmp: true,
forwardFavicon: true
});
isomorphicRoutes(app, {
mountAt: "/foo",
...
})
baseUrl
Note: The baseUrl must be updated in the editor via the database for some things (like the canonical url and sitemaps)
story url
It's likely that /${story.slug}
will return the wrong url. That's fine. ${story.url}
should work correctly assuming baseUrl is set
Acceptance Criteria
Please confirm the following things work as expected
- All home, story, section pages are available at /foo, /foo/section/slug, /foo/section accordingly
- /foo/api/v1/config and other such APIs work correctly
- /foo/sitemap.xml, /foo/stories.rss and other syndication works correctly
- Links between pages should work correctly
- canonical urls must be set correctly
- Documentation is updated accordingly
- Menu links should be set correctly
- No malibu files (other than
app/server/start.js
) should need any changes for moving between pages. (possible exception for some hardcoded links such as menu)
I do not expect the following to work in v1 (and can be mentioned as unsupported in the documentation)
- /foo/auth (and all redirect flows)
- Any API that returns a redirect (/api/v1/bulk-request)