返回

上线必备:解决FIS3 + mod.js项目线上部署找不到文件bug

前端

前言

FIS3 + mod.js 是前端开发中常用的开发方案,在本地开发和测试时通常不会遇到问题。然而,在进行线上部署时,却可能出现各种各样的问题,其中最常见的问题之一就是找不到文件。本文将分享我们遇到的一个线上部署找不到文件的bug的解决过程,希望对遇到类似问题的开发者有所帮助。

问题

我们的项目在本地开发过程中非常顺利,第一次线上部署也一切顺利。但是,在今天上午的一次更新部署后,线上环境出现了找不到文件的bug。

我们的线上更新代码方式是将FIS3 release出来的文件放入服务器文件目录内,然后重启服务器。在之前的多次修改中都没有出现问题,但是在今天的更新中,线上环境却出现了找不到文件的情况。

定位问题

为了定位问题,我们首先检查了线上服务器上的文件是否存在。发现文件确实存在,但是线上环境却找不到文件。

我们猜测可能是文件路径的问题,于是检查了FIS3的配置文件和release命令。发现配置文件和release命令中的文件路径都是正确的。

解决办法

经过一番排查,我们终于找到了问题所在。原来,在我们的FIS3配置文件中,我们使用了相对路径来指定资源文件的路径。而在线上环境中,由于文件结构和本地开发环境不同,相对路径导致找不到文件。

为了解决这个问题,我们修改了FIS3配置文件,将相对路径修改为绝对路径。具体来说,我们修改了fis-conf.js配置文件中的如下代码:

// fis-conf.js
fis.set('project.files', ['src/**']);
fis.set('project.ignore', ['node_modules/**', 'output/** ', 'fis-conf.js']);

修改为:

// fis-conf.js
fis.set('project.files', ['/path/to/src/**']);
fis.set('project.ignore', ['/path/to/node_modules/**', '/path/to/output/** ', '/path/to/fis-conf.js']);

其中,/path/to/src 是src目录的绝对路径。

验证结果

修改配置文件后,我们重新release并部署了代码。这次,线上环境可以正常找到文件了。问题得到解决。

总结

在FIS3 + mod.js项目的线上部署过程中,如果遇到找不到文件的bug,可以检查以下几个方面:

  • 文件是否确实存在
  • 文件路径是否正确
  • 相对路径和绝对路径的使用是否正确

希望本文分享的解决过程能帮助大家快速定位并解决类似问题。