JaguarJack / catch-admin

CatchAdmin是一个基于对Laravel和Element Plus进行二次开发的后台管理系统。CatchAdmin仍然采用传统的前后端分离策略,其中Laravel框架仅用作Api输出。通过这种设计,成功将管理系统模块之间的耦合降至最低。
https://catchadmin.com
Apache License 2.0
719 stars 122 forks source link

安装部署过程中遇到的问题请教 #57

Closed ThreadDeath closed 1 year ago

ThreadDeath commented 1 year ago

感谢大神的开源,项目非常不错

项目使用的最新的Laravel 10版本 node版本 :18.16.0

安装大神的项目过程中遇到2个问题,请指教一下: 1.nginx路由问题,页面路由正常,资源文件无法访问/assets/js/admin-eb7d626d.js, /admin/assets/js/admin-eb7d626d.js才能访问 location / { root /www/wwwroot/catch-admin-master/public/admin/; try_files $uri $uri/ /admin.html; }

location /api {
   if (!-e $request_filename) {
    rewrite  ^(.*)$  /index.php?s=/$1  last;
    break;
  }
}

2.打包报错,看着是ts语法强制检测报错,你那边不报错吗?跟使用的node版本有关系?例如 resources/admin/components/admin/icons/index.vue:45:3 - error TS2322: Type 'string[]' is not assignable to type 'never[]'. Type 'string' is not assignable to type 'never'.

我去掉 "build": "vue-tsc --noEmit && vite build",改成 "build": " vite build",去掉检测才可以

JaguarJack commented 1 year ago

第一个问题 我不清楚你打包后的文件是什么样子,我可以分享下线上

这是 v3 demo 站点的

第二个问题 一般我都是 使用在文件添加 ts-ignore 或者 no-check,说实话 我自己也没办法完全使用 ts 的类型😂

ThreadDeath commented 1 year ago

第一个问题 我不清楚你打包后的文件是什么样子,我可以分享下线上

  • public/

    • admin/(打包后的文件夹)

    • admin.html

    • asset/

      • css/
      • ico/
      • js/
      • png/

这是 v3 demo 站点的

第二个问题 一般我都是 使用在文件添加 ts-ignore 或者 no-check,说实话 我自己也没办法完全使用 ts 的类型😂

经过我多次测试,如果nginx配置成这样,则会出现我上面反馈的js/css无法访问,导致界面空白

image

如果把两个地方的root都改成/www/wwwroot/catch-admin-master/public/admin,就可以正常访问了,但这个时候接口路由访问不了,上面那种接口是能访问的

image

所以你这个具体配置的啥,我感觉就是这个nginx的配置问题,还望大神在看看

image
JaguarJack commented 1 year ago

第一个问题 我不清楚你打包后的文件是什么样子,我可以分享下线上

  • public/

    • admin/(打包后的文件夹)

    • admin.html

    • asset/

      • css/
      • ico/
      • js/
      • png/

这是 v3 demo 站点的 第二个问题 一般我都是 使用在文件添加 ts-ignore 或者 no-check,说实话 我自己也没办法完全使用 ts 的类型😂

经过我多次测试,如果nginx配置成这样,则会出现我上面反馈的js/css无法访问,导致界面空白 image

如果把两个地方的root都改成/www/wwwroot/catch-admin-master/public/admin,就可以正常访问了,但这个时候接口路由访问不了,上面那种接口是能访问的 image

所以你这个具体配置的啥,我感觉就是这个nginx的配置问题,还望大神在看看 image

    listen  443  ssl http2;
    server_name v3.catchadmin.com;
    index admin.html index.html index.php index.htm default.php default.htm default.html;
    // root 这里是项目根目录
    root /var/www/html/v3/public;

    ssl_certificate     /etc/nginx/catchadmin.com/catchadmin.com.cer;  # pem文件的路径
    ssl_certificate_key  /etc/nginx/catchadmin.com/catchadmin.com.key; # key文件的路径
    ssl_session_timeout  5m;    #缓存有效期
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    location /api {
       if (!-e $request_filename) {
        rewrite  ^(.*)$  /index.php?s=/$1  last;
        break;
      }
    }

   location / {
     // 这里是前端项目根目录
     root /var/www/html/v3/public/admin;
     try_files $uri $uri/ /admin.html;
   }

上面是 v3 demo 的项目配置,你可以参考下

ThreadDeath commented 1 year ago

感谢大神的耐心,这块配置跟你配置的一样的,因为基本确定还是nginx的问题,经过一上午反复实验,因为同目录下的html文件是可以访问的,但是js、css访问不了,由于我用的宝塔管理后台,然后看到他默认有个js、css的配置,我注释掉就好了 location ~ .*.(js|css)?$ { expires 12h; error_log /dev/null; access_log /dev/null; }

这个我后面再看看是啥意思,为啥导致这种情况的js、css访问不了,可以关闭问题了😂

JaguarJack commented 1 year ago

,由于我用的宝塔管理后台,然后看到他默认有个js、css的配置,我注释掉就好了 location ~ .*.(js|css)?$ { expires 12h; error_log /dev/null; access_log /dev/null; }

可以的,宝塔 哈哈哈!埋坑有一套

JaguarJack commented 1 year ago

感谢大神的耐心,这块配置跟你配置的一样的,因为基本确定还是nginx的问题,经过一上午反复实验,因为同目录下的html文件是可以访问的,但是js、css访问不了,由于我用的宝塔管理后台,然后看到他默认有个js、css的配置,我注释掉就好了 location ~ .*.(js|css)?$ { expires 12h; error_log /dev/null; access_log /dev/null; }

这个我后面再看看是啥意思,为啥导致这种情况的js、css访问不了,可以关闭问题了😂

还有第二问题也已经解决了。类型修复了,你可以 pull 下 重新打包

ThreadDeath commented 1 year ago

感谢大神的耐心,这块配置跟你配置的一样的,因为基本确定还是nginx的问题,经过一上午反复实验,因为同目录下的html文件是可以访问的,但是js、css访问不了,由于我用的宝塔管理后台,然后看到他默认有个js、css的配置,我注释掉就好了 location ~ .*.(js|css)?$ { expires 12h; error_log /dev/null; access_log /dev/null; } 这个我后面再看看是啥意思,为啥导致这种情况的js、css访问不了,可以关闭问题了😂

还有第二问题也已经解决了。类型修复了,你可以 pull 下 重新打包

好的,效率高啊,我摸鱼的时候继续研究学习大神这框架了