JaguarJack/catch-admin

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

ThreadDeath opened this issue · 7 comments

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

项目使用的最新的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",去掉检测才可以

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

  • public/
    • admin/(打包后的文件夹)
      • admin.html
      • asset/
        • css/
        • ico/
        • js/
        • png/

这是 v3 demo 站点的

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

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

  • 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

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

  • 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 的项目配置,你可以参考下

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

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

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

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

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

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

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

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

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

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