Update deploy.md (#1781)

Co-authored-by: Caleb Jasik <calebjasik@jasik.xyz>
This commit is contained in:
Steve Murphy 2021-11-10 13:07:58 -07:00 committed by GitHub
parent 48bad7bdc0
commit 3956bab271
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -414,6 +414,95 @@ You can deploy your Astro project using [Buddy](https://buddy.works). To do so y
6. Add a deployment action - there are many to choose from, you can browse them [here](https://buddy.works/actions). Although their can settings differ, remember to set the **Source path** to `dist`.
7. Press the **Run** button.
## Layer0
You can deploy your Astro project using the steps in the following sections.
### Create the Astro Site
If you don't have an existing Astro site, you can create one by running:
```bash
# Make a new project directory, and navigate directly into it
$ mkdir my-astro-project && cd $_
# prepare for liftoff...
$ npm init astro
# install dependencies
$ npm install
# start developing!
$ npm run dev
# when you're ready: build your static site to `dist/`
$ npm run build
```
### Add Layer0
```bash
# First, globally install the Layer0 CLI:
$ npm i -g @layer0/cli
# Then, add Layer0 to your Astro site:
$ 0 init
```
### Update your Layer0 Router
Paste the following into routes.ts:
```js
// routes.ts
import { Router } from '@layer0/core'
export default new Router()
.get('/:path*/:file.:ext(js|css|png|ico|jpg|gif|svg)', ({ cache, serveStatic }) => {
cache({
browser: {
// cache js, css, and images in the browser for one hour...
maxAgeSeconds: 60 * 60,
},
edge: {
// ... and at the edge for one year
maxAgeSeconds: 60 * 60 * 24 * 365,
},
})
serveStatic('dist/:path*/:file.:ext')
})
.match('/:path*', ({ cache, serveStatic, setResponseHeader }) => {
cache({
// prevent the browser from caching html...
browser: false,
edge: {
// ...cache html at the edge for one year
maxAgeSeconds: 60 * 60 * 24 * 365,
},
})
setResponseHeader('content-type', 'text/html; charset=UTF-8')
serveStatic('dist/:path*')
})
```
You can remove the origin backend from `layer0.config.js`:
```js
module.exports = {}
```
### Deploy to Layer0
To deploy your site to Layer0, run:
```bash
# Create a production build of your astro site
$ npm run build
# Deploy it to Layer0
$ 0 deploy
```
## Credits
This guide was originally based off [Vite](https://vitejs.dev/)s well-documented static deploy guide.