Adonis.js生产环境部署报错:无法找到/public/assets/.vite/manifest.json
Adonis.js部署VPS后Vite提示找不到manifest.json文件(文件实际存在)
问题详情
开发环境下pnpm run dev运行正常,部署到VPS的/var/www/myproject目录后,执行了pnpm run build,配置了Nginx反向代理和开机自启服务运行node bin/server.js,但访问域名时出现Vite相关错误:
ENOENT: no such file or directory, open '/public/assets/.vite/manifest.json'
已确认/var/www/myproject/public/assets/.vite/manifest.json文件存在,且权限与项目其他文件一致。
相关配置
Nginx配置
server { #root /var/www/projectName; server_name mydomain.fr; location / { proxy_pass http://127.0.0.1:3333; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } listen [::]:443 ssl ipv6only=on; # managed by Certbot listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/qfelbinger.fr/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/qfelbinger.fr/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot }
Vite配置
import { defineConfig } from 'vite'; import adonisjs from '@adonisjs/vite/client'; export default defineConfig({ plugins: [ adonisjs({ entrypoints: ['resources/css/app.css', 'resources/js/app.js'], reload: ['resources/views/**/*.edge'], }), ], });
解决思路
- 检查Node进程工作目录:启动服务时若直接运行
node /var/www/myproject/bin/server.js,进程的工作目录可能不是项目根目录,导致/public/assets/...被解析为系统根目录下的路径,而非项目目录。修改服务配置,添加WorkingDirectory=/var/www/myproject(systemd服务),或改为cd /var/www/myproject && node bin/server.js启动。 - 确认环境变量设置:启动服务时指定
NODE_ENV=production,确保Adonis.js和Vite使用生产模式配置,正确读取manifest文件。例如:NODE_ENV=production node bin/server.js。 - 验证文件访问权限:确认运行Node服务的用户(如www-data或自定义用户)能读取该manifest文件。执行
su - <服务运行用户> -c 'cat /var/www/myproject/public/assets/.vite/manifest.json'测试读取权限。 - 重新构建输出:删除
public/assets目录,重新执行pnpm run build,检查构建过程无报错,且manifest.json正确生成在目标路径。 - 检查Adonis.js Vite配置:查看项目
config/vite.ts文件,确认publicDirectory和buildDirectory配置正确,确保构建产物输出到项目的public/assets目录。
内容的提问来源于stack exchange,提问作者Lief
相关产品推荐
相关产品推荐

