Brief Synopsis
When designing for the cloud it’s important that we take into consideration cost. In the cloud, there are a wide variety of services; some cost more than others. The resource that you will probably spend the most money on (in most scenarios) is compute. Therefore, its advantageous to offload as much responsibility from your compute resources to less expensive resources. The best example of this is storage services.
The Upside
You get highly available, durable and redundant hosting of your static content which saves more of your compute resources’ bandwidth to handle dynamic content generation—you know, the stuff that actually requires server-side code to execute.
The Downside
Like all things there are trade-offs in any decision you make. Going down this road does take additional maintenance effort to manage where the static content is deployed to. You will likely have to add another component to each and every environment you maintain. This will require you to either manage the content manually or invest in automation that will push the content to the appropriate environment during build and transform paths to use the appropriate DNS prefix on a per environment basis.