如何在Plesk上部署Shopware PWA应用并解决仅显示Nuxt默认页问题
1. 修正服务端启动逻辑
你当前的server.js存在生产环境重复构建、未等待Nuxt实例就绪就挂载中间件的问题,会导致加载默认空Nuxt模板,替换为以下代码即可:
const express = require('express'); const { Nuxt } = require('nuxt'); const config = require('./nuxt.config.js'); const app = express(); const port = process.env.PORT || 3000; // 固定生产模式 config.dev = false; async function startServer() { const nuxt = new Nuxt(config); // 等待Nuxt实例完全就绪 await nuxt.ready(); app.use(nuxt.render); app.listen(port, () => { console.log(`Shopware PWA running on port ${port}`); }); } startServer();
注意:生产环境不要在线执行构建操作,提前在本地运行
npm run build,将生成的.nuxt目录一起上传到服务器即可。
2. 校验Shopware PWA核心配置
检查项目根目录的nuxt.config.js配置项:
- 确认
shopwareEndpoint参数为Shopware后端的公开可访问地址,不能使用localhost或内网地址 - 确认
shopwareAccessToken参数为Shopware后台对应销售渠道生成的访问密钥,无拼写错误 - 确认Nuxt配置的
target为server模式,不要设置为static静态模式
3. 调整Plesk托管配置
打开站点的Plesk Node.js管理页:
- 确认应用启动文件设置为
index.js,和项目入口文件一致 - 确认应用根目录为上传Shopware PWA代码的根目录,需包含
.nuxt、nuxt.config.js、package.json等核心文件 - 确认自定义环境变量中
NODE_ENV为production,未被覆盖为开发模式 - 点击「安装依赖」按钮重新拉取所有依赖,完成后点击「重启应用」生效
4. 规范部署流程
正确的部署步骤如下:
- 本地开发环境完成功能测试后,执行
npm run build,确认本地启动服务可正常展示店铺内容 - 上传以下文件/目录到Plesk应用根目录:
- 本地构建生成的
.nuxt目录 - 静态资源
static目录 - 配置文件
nuxt.config.js - 启动文件
index.js、server.js - 依赖清单
package.json、package-lock.json/yarn.lock
- 本地构建生成的
- 不要手动上传本地的
node_modules目录,通过Plesk后台自动安装依赖避免环境兼容问题
5. 异常排查
如果修改后仍无法正常访问,查看Plesk Node.js管理页的应用日志:
- 若出现Shopware API请求失败报错,检查后端地址、访问密钥是否正确,确认服务器网络可正常访问Shopware后端
- 若出现模块缺失报错,重新执行依赖安装操作,或手动上传本地验证可用的
node_modules目录
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

