Skip to content
This repository has been archived by the owner on Nov 27, 2018. It is now read-only.

Provide a site-root option to allow the offline manager to be included at any page #263

Open
delapuente opened this issue Jan 15, 2016 · 2 comments

Comments

@delapuente
Copy link
Contributor

Currently, the offfline-manager register assuming it is included inside the index.html document at the root of the site (independently of the root being / or /gh-repo-name/). But if the user want to provide update checking from other pages not in the root of the site, the offline-manager need to reference the actual path for the worker without assumptions, the site-root option allows the manager to exactly know where the service worker is located.

@mykmelez
Copy link
Contributor

Currently, the offfline-manager register assuming it is included inside the index.html document at the root of the site (independently of the root being / or /gh-repo-name/ as it uses.

Indeed, you might call this the "single-page app" assumption. It wasn't a conscious decision, just a consequence of the bias towards SPAs in the reference apps we built while developing the first version of Oghliner.

GitHub Pages isn't SPA-specific, and it's a reasonable host for multi-page apps (provided they don't have a server-side application layer). So I agree that Oghliner should support management of the offline worker from multiple pages of the site.

But if the user want to provide update checking from other pages not in the root of the site, the offline-manager need to reference the actual path for the worker without assumptions, the site-root option allows the manager to exactly know where the service worker is located.

Yes, site-root is a good solution to this problem!

Its only limitation is that it ties the app to a particular path, whereas sites can sometimes have multiple paths. For example, my Egg Timer app is available at both https://eggtimer.org/ and https://mykmelez.github.io/eggtimer/. And when developing it locally, I sometimes start a web server with a root directory set to the app's build directory, so its URL is http://localhost/; but other times I set the root directory above the build directory, and its URL is http://localhost/path/to/build/dir/.

Nevertheless, I don't actually want people to use https://mykmelez.github.io/eggtimer/ (and in fact I should redirect that URL to the other one). And I can work around any limitation when developing locally simply by setting the web server's root directory consistently.

Plus, Egg Timer is a poor example here, since it's an SPA that doesn't need this feature. And I don't know of a better approach than site-root anyway; anything we did to accommodate multiple possible root paths would be significantly more complicated.

So I think we should do it!

@delapuente
Copy link
Contributor Author

To be working on a Jekyll static site using oghliner is enlightening to come up with these kind of issues as I was used to work in SPAs too.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants