原文链接:https://www.csdn.net/tags/NtDakgzsMTQxOTEtYmxvZwO0O0OO0O0O.html
踩了一个大坑,在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里面的内容要使用绝对路径外,其他都用相对路径能保证在服务器上少发生与路径相关的错误