nginx添加子项目,以及子项目js和css资源无法加载解决

2,142 阅读1分钟

今天碰到一个新需求,要在一个老项目上添加一个子项目

假设老项目是www.love614.live,名为A

现在要使www.love614.live/B可以访问子项目B。

一共分两步:

1.B项目的公共路径需要修改为相对路径(指的是index.html引用的资源路径)。

通常前端项目的公共路径是绝对路径,比如:

需要改为:

因为你的nginx配置根目录是A的目录,所以B还是使用绝对路径的话,加载B的资源的时候,nginx会去A的目录了找,自然是找不到的。

这里只要修改打包配置,把公共路径"/"改成“./”就可以了

2.nginx添加子项目B的配置,我的配置如下:

location /B{
        root /home/ubuntu;         try_files $uri $uri/ /home/ubuntu/B/index.html;
        
        location ~ .*\.(js|css)?$
          {
              expires      12h;
              error_log off;
              access_log /dev/null;
          }
    }

至于为什么要加   location ~ .*\.(js|css)?$

如果你的nginx原本有这个配置,那location /B里不加上会导致B项目在加载资源的时候,还是会去A的目录寻找。

我也不太懂这是为啥,nginx了解的不是很多,不过好在这样能解决问题。