You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 02:33:29