.then( res =>{
console.log('aaaaa',res)
})
把文件放到vue项目里面然后用axios。
你写绝对路径不行因为现在浏览器不允许访问本机文件,原来有activeXobject现在已经没人用了。
你写fs不行因为这是前端的js运行在浏览器沙盒里不是运行在你本机里的nodejs
浏览器上运行的js没法主动读取操作系统上的文件系统,对网页js来说看不见文件系统,浏览器是个沙盒环境
只能 放到项目里 。要不然 不行的
axio后面跟的是url,不能使用本地目录,你可以使用file协议指示
this.axios.get('file:///D:\Config\config.json')
浏览器如果能够直接访问指定的本地磁盘路径里面文件,你想一下,那是不是我可以在你访问我的网站的时候想对你电脑磁盘内的文件干啥都可以呀,那你还敢用浏览器上网不,所以直接访问磁盘路径的写法在浏览器环境下面是不会成功的
需要读取本地磁盘的文件的需求为啥是前端来做呢,应该是后端提供接口啊,后端读取磁盘文件简单得就跟玩一样
页面上面使用文件选择器呀,你这想js自动获取主机文件肯定不行的,不然谁还敢用浏览器,那岂不是太可怕了
js不支持浏览器主动获取用户本地磁盘文件,放弃吧。谷歌老早就禁止了,老版的IE可以,但是IE已经退役了。放弃吧
考虑到安全性问题,浏览器不支持获取用户本地的磁盘文件。不过你可以试试直接在项目中直接import这个JSON文件或许可以有作用
弄成js导入吧,肯定是读取不了本地文件的
关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:Vue 读取本地静态文件 json【2种方法及优缺点】主流浏览器出于安全性的考虑,都不允许js直接读写客户端本地文件的。
如果必须要读取本地的配置文件可以通过上传文件的方式手动触发文件上传动作,再解析获取文件内容。
建议:配置文件还是放在服务端的目录。
如果有特殊的展示需求可以根据请求时浏览器的信息自动适配。而不依赖用户的本地配置。
网上大部分解决方案是放static文件夹,但是vue-cli3.0的静态文件是在public文件夹里,所以已经不行了。
正解是在public文件夹里放文件,然后就可以正常用this.$axios.get来访问了