mirror of
https://github.com/withastro/astro.git
synced 2024-12-23 21:53:55 -05:00
ba5e2b5e6c
* Checkpoint, basics are working * Add the `--experimental-ssr` flag * Adds the changeset * Fixes population of getStaticPaths results * Pass through the imported module * Route manifest test * Fix remaining tests * Fix remaining tests * Copy server assets over * Fix types * Allowing passing in the request to the Node version of App * Improve the example app * Gets CI to pass
29 lines
1.1 KiB
Markdown
29 lines
1.1 KiB
Markdown
---
|
|
'astro': patch
|
|
---
|
|
|
|
Experimental SSR Support
|
|
|
|
> ⚠️ If you are a user of Astro and see this PR and think that you can start deploying your app to a server and get SSR, slow down a second! This is only the initial flag and **very basic support**. Styles are not loading correctly at this point, for example. Like we did with the `--experimental-static-build` flag, this feature will be refined over the next few weeks/months and we'll let you know when its ready for community testing.
|
|
|
|
## Changes
|
|
|
|
- This adds a new `--experimental-ssr` flag to `astro build` which will result in `dist/server/` and `dist/client/` directories.
|
|
- SSR can be used through this API:
|
|
```js
|
|
import { createServer } from 'http';
|
|
import { loadApp } from 'astro/app/node';
|
|
|
|
const app = await loadApp(new URL('./dist/server/', import.meta.url));
|
|
|
|
createServer((req, res) => {
|
|
const route = app.match(req);
|
|
if(route) {
|
|
let html = await app.render(req, route);
|
|
}
|
|
|
|
}).listen(8080);
|
|
```
|
|
- This API will be refined over time.
|
|
- This only works in Node.js at the moment.
|
|
- Many features will likely not work correctly, but rendering HTML at least should.
|