I'm working on a ember-cli app that I am deploying in S3. I would really like to be able to use this 'serverless' approach, as it is extremely simple to configure, and extremely affordable.
I have a problem with URLs. If I hit http://my-bucket.s3-website-us-east-1.amazonaws.com/ it works just fine. But if I try to directly load a page other than the root of the application, such as http://my-bucket.s3-website-us-east-1.amazonaws.com/elephants/5, then it gives a 403, as there is no such resource in S3. (I can navigate to such pages fine through the application, and I can hit them directly in dev mode on my machine, so the ember app is working fine.)
Looking for solutions, I find suggestions to add #!
to my path. This seems better, as it doesn't return a 403, but when I hit http://my-bucket.s3-website-us-east-1.amazonaws.com/#!/elephants/5, it simply redirects to http://my-bucket.s3-website-us-east-1.amazonaws.com, losing any specific information that the path contained.
What are my options? Is there a way to use S3 and have working URLs? Do I need a server? Or is there another approach that has eluded me?
There are few problems with the approach of just having a # based redirect. I have listed them below:
An approach mutated off the Lightening deployment approach advocated with Ember-CLI-Deploy is as follow:
5.For SEO needs + making sure your index.html does not cache, do the following:
I can help in more details with respect to nginx setup, just leave a note. Have learnt it the hard way.
Once the cloud front distribution update. Invalidate your cloudfront cache once to be in the pristine mode. Hit the url in the browser and all should be good.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With