Closed joneslloyd closed 3 years ago
:wave: @joneslloyd
Sorry for the late response. It appears that this is because the generated files are in the form locations/new-york.html
and so the .html
extension is required for the CDN to locate the files. Fortunately there's a configurable Next.js setting that turns these generated files into directories like locations/new-york/index.html
which will allow you to use site.com/locations/new-york
to access them. To enable this option, add the following to next.config.js
:
module.exports = {
trailingSlash: true,
}
I've tested this and you can see an example in this repo: https://github.com/kamaln7/nextjs-static-index.html-example
Also, please post any questions or issues you run into on the DigitalOcean Q&A. The team closely monitors that and you should get a much quicker response than here 😄 I've cross-posted your question there for visibility: Next.js Static Site Requires .html extension in URL for Dynamic Routes
G'bless you @kamaln7 your solution was much appreciated!
Hi,
I haven't quite figured out why this is happening (and therefore don't have a solution yet), but I've noticed that if I have
/pages/[...slug].js
to handle all pages including sub-directory style pages (eg,site.com/about
andsite.com/locations/new-york
), the sub-directory pages only work if.html
is appended when deploying to DigitalOcean App Platform.For example:
site.com/about
works, butsite.com/locations/new-york
gives a 404 page. Howeversite.com/locations/new-york.html
does work (but isn't desired behaviour).It does work correctly locally (
site.com/locations/new-york
loads) by the way.If I figure out what's going on I'll submit a PR :)