Update deploy.md (#1781)
Co-authored-by: Caleb Jasik <calebjasik@jasik.xyz>
This commit is contained in:
parent
48bad7bdc0
commit
3956bab271
1 changed files with 89 additions and 0 deletions
|
@ -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`.
|
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.
|
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
|
## Credits
|
||||||
|
|
||||||
This guide was originally based off [Vite](https://vitejs.dev/)’s well-documented static deploy guide.
|
This guide was originally based off [Vite](https://vitejs.dev/)’s well-documented static deploy guide.
|
||||||
|
|
Loading…
Reference in a new issue