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`.
|
||||
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.
|
||||
|
|
Loading…
Reference in a new issue