Skip to content

Support hosting framework in a subdirectory #98

Open
@gja

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)

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions