vue3 访问 public 内文件
一、访问 JSON 文件
方法:使用 axios 读取文件
(1)在 public 文件夹下创建 json 文件
(2)在需要自定义配置的页面使用 axios 读取此 json 文件:
axios.request({
url: '/app/app-config.json', // 直接填写json文件在public下的路径即可
method: 'get',
}).then(res => {
this.appData = res.data
}).catch(err => {
alert("抱歉,服务出错!")
})
(3)实际项目中会将 axios 方法进行封装,可直接使用调用接口方法:
// api 文件:
getAppConfig() {
const url = '/app/app-config.json'
return fetchGet(url)
}
// 实际使用:
const appConfigRes = await api.getAppConfig()
const appConfig = appConfigRes.data
如果有问题,如果部署之后有可能会访问不到 json 文件。需要在 路径前面添加 BASE_URL 地址
const url = process.env.BASE_URL + '/app/app-config.json'
二、访问 JS 文件
方法:使用 标签引入
(1)在 public 文件夹下创建 config.js 文件,用 window.config 这样方式挂载也是可以的,或者直接定义变量。
let config = [
// window.config = [
{
title: '个人中心',
content: [
{
labe: '我的账户',
url: 'http://www.baidu.com/'
},
{
labe: '设置',
url: 'http://www.baidu.com/'
}
]
}
]
(2)在 public 文件夹 html 文件下,使用 标签进入
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
//通过script引用
<script src="config.js"></script>
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
</head>
<body>
<div id="app"></div>
</body>
</html>
(3)直接使用
const data = config
const data = window.config //两种方式都可以