事故
生产发布 和原来一样正常发版 一天无事 等二天 产品突然找来说 app端打不开了 然后定位问题
找了半天 也没发现问题所在

还原 Nginx 配置如下 我们原来是设想是 app端 和 pc端 都走一个文件夹 不区分

app — 存放静态资源的地方
jsc — app端资源
— 下面的都是pc端的代码
css
js
fonts
index.html

按照这个设想的话 所有的数据 会先走 ~ .*. 的 方法 静态资源
然后/jsc 这个就没用了 最后统一走 / 模板

image.png

  1. server {
  2. listen 8089;
  3. server_name xxxxxxxx.cn;
  4. #charset koi8-r;
  5. #access_log logs/host.access.log main;
  6. #root /opt/frontend/org-ex-mng-front/app/;
  7. #index index.html;
  8. location /jsc {
  9. alias /opt/frontend/org-ex-mng-front-jsc/app/;
  10. try_files $uri $uri/ /app/index.html;
  11. index index.html index.htm;
  12. }
  13. location / {
  14. root /opt/frontend/org-ex-mng-front/app/;
  15. try_files $uri $uri/ @router;
  16. index /index.html;
  17. }
  18. location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css|js|eot|svg|ttf|woff|woff2|properties|json)$ {
  19. root /opt/frontend/org-ex-mng-front/app/;
  20. }
  21. location @router {
  22. rewrite ^.*$ /index.html last;
  23. }
  24. location ^~ /mng/ {
  25. proxy_pass http://webapi;
  26. }
  27. location ^~ /portal/ {
  28. proxy_pass http://xxxxxxxx.net.cn/;
  29. }
  30. }

隐患

所以按照上面的设想 我将 jsc 的配置 就去掉了 或者是改名字了
image.png
如上面所示 可知 不管走不走 /jsc 里面 那么都获取不到数据了 所以这个就废了

问题

上面的理解是错误的 问题所在的地方是 下面这条数据 正则匹配 静态资源 然后跳转去 /opt/frontend/org-ex-mng-front/app/ 这个先处理

  1. location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css|js|eot|svg|ttf|woff|woff2|properties|json)$ {
  2. root /opt/frontend/org-ex-mng-front/app/;
  3. }

然后这个上面没有
然后走 /jsc 我的这个下面将 app 改成了app01 也不会走
最后走到 / 下面 这个还是在 /opt/frontend/org-ex-mng-front/app/ 下面 还是匹配不到 最后报错
1659704606043_1856AC2C-2139-40fa-AEAA-70C712616560.png

:::info /css/598.843a34df.css
/jsc/static/js/app.e74be873.js
/jsc/static/css/app.396cee98.css :::