nodejs配置静态资源错误

踩了一个大坑,在nodejs配置静态资源时,最开始是用到了这种方法,在本地打开时

app.use('/public',express.static('./public'))

然后发现死活获取不了public下的文件,在网上寻找了各种方法之后,终于解决了问题,解决代码如下

app.use('/public',express.static(path.join(__dirname, 'public')))

记得要在头部引入path文件,


原理

这里就要说到./与__dirname的区别,__dirname指向的总是执行JS文件的文件夹的绝对路径位置,例如/code/app.js,__dirname就指向/code,具体路径关系可以参考这篇文章,里面讲的很详细 浅析 NodeJs 的几种文件路径


经验

在服务器上调用路径时,最好全部都采用相对路径,除了require里面的内容要使用绝对路径外,其他都用相对路径能保证在服务器上少发生与路径相关的错误

你可能感兴趣的:(nodejs)