Estoy tratando de instalar SSR en mi aplicación Vue actual, y para esto estoy usando la extensión vue-plugin-ssr . Quiero ejecutarlo con express, así que creé un nuevo archivo llamado server.mjs y tengo esto:
import express from "express"; import { createServer as createViteServer } from "vite"; import { renderPage } from "vite-plugin-ssr"; async function createServer() { const app = express(); // Create Vite server in middleware mode and configure the app type as // 'custom', disabling Vite's own HTML serving logic so parent server // can take control const vite = await createViteServer({ server: { middlewareMode: true }, appType: "custom", }); // use vite's connect instance as middleware // if you use your own express router (express.Router()), you should use router.use app.use(vite.middlewares); app.get("*", async (req, res) => { // `renderPage()` can also be used in serverless environments such as // Cloudflare Workers and Vercel const { httpResponse } = await renderPage({ url: req.url }); res.send(httpResponse.body); }); app.listen(3000); } createServer(); Entonces, esto realmente funciona para el desarrollador, cuando ejecuto node server.mjs , pero ni la carpeta del cliente ni la del servidor tienen un archivo index.html, entonces, ¿cómo puedo ejecutar esto en producción? Solo lo que estoy haciendo es configurar la carpeta en nginx en ruta/dist/cliente, ¿debo hacer algo más?
por cierto, como respuesta a la producción, solo tengo 403 prohibidos.
Debe ejecutar el proceso de compilación del cliente y ssr como se muestra en la documentación de Vite y luego:
Mueva la creación y todo el uso del servidor
vitedev detrás de ramas condicionales solo para desarrolladores, luego agregue middlewares de servicio de archivos estáticos para servir archivos dedist/client