我正在尝试在我当前的Vue应用程序上安装SSR,为此我使用了vue-plugin-ssr扩展。我想用express运行它,所以我创建了一个名为server.mjs的新文件,并拥有以下内容:
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();因此,当我运行node server.mjs时,这实际上适用于dev,但是客户端或服务器文件夹都没有index.html文件,那么如何在生产中实际运行这个文件呢?我所做的只是将nginx上的文件夹设置为path/dist/client,还需要做其他的事情吗?
顺便说一句,作为对生产的回应,我只有403份。
发布于 2022-07-21 22:43:38
您需要运行客户端和ssr构建过程如Vite的文档所示,然后:
将
vitedev服务器的创建和所有使用移到只使用dev的条件分支之后,然后添加服务于中间件的静态文件以从dist/client服务文件。
https://stackoverflow.com/questions/73073198
复制相似问题