时间:2022-08-13 12:18:20 | 栏目:vue | 点击:次
vue cli3 的项目,打生产包的时候,public文件夹里面的文件,是不经webpack编译,直接复制到 publicPath设置的目录下的,开发时用到的json数据、图片等资源文件,可以放到 public目录里面。
如下,准备了一张图片和一个json文件
|-- src |-- public |-- data |-- table.json |-- images |-- cat.png
涉及的文件如下(具体参考代码):
|-- src |-- .env.development // 开发环境配置,主要是配置服务器地址 |-- .env.production // 生产环境配置,主要是配置服务器地址 |-- settings.js // 一些全局配置,把publicPath的值设置在这里 |-- utils |-- mock-request.js // axios请求封装 |-- api |-- table.js // 获取table.json数据的请求封装 |-- views |-- mockDataTest // 用来显示请求结果 |-- index.vue |-- index.scss |-- index.js |-- public |-- data |-- table.json |-- images |-- cat.png |-- vue.config.js
先配置下访问公共路径,例如,想在访问的时候地址加上dist路径,可以在vue.config.js如下配置
module.exports = { publicPath: process.env.NODE_ENV === 'production' ? '/' : '/dist', }
为方便调用,记得这里要和settings.js里面的publicPath同步修改。
这里主要是配置下部署的服务器的地址,例如,开发时,本地访问的地址是http://localhost:8081 定义一个参数,存放此地址,名字随意
VUE_APP_MOCK_URL = 'http://localhost:8081/'
这里主要是配置下axios的baseURL,直接读取.env.development or .env.production里面配置的服务器地址就行,例如,
baseURL: process.env.VUE_APP_MOCK_URL
这里会自动根据命令,读取不同环境配置的服务器地址
这里是服务器请求相关的,.json文件的数据怎么请求获取,如下所示
import mrequest from '@/utils/mock-request' import defaultSettings from '@/settings' const { publicPath } = defaultSettings export const tableData = () => { return mrequest({ url: publicPath + `/data/table.json`, method: 'get' }) }
这里主要是演示效果
具体看代码了
效果如下
代码,参考
简单的实现了不用依赖后台接口的mock数据请求。数据都存放在.json文件里面。这些放在public文件夹的文件,都不参与编译,方便修改和替换。打包生产后,可以直接放静态服务器运行。
以上,因为一个演示平台需要,数据、图片、视频都有频繁修改替换的可能,所以采用如此方式实现。