合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
## 参数配置 ### 1、路径: 在table.vue组件中导入loading.vue组件 ``` import Loading from '../../../components/loading/loading.vue' ``` 使用这种方式导入文件不方便,并且容易出错。项目结构如下,其中**build文件夹为项目构建\(webpack\)相关代码** ### 解决方法: 别名配置 ``` 查看 build / webpack.base.config.js文件。 ``` ```js function resolve (dir) { return path.join(__dirname, '..', dir) } module.exports = { ....... resolve: { ..... alias: { '@': resolve('src'), 'common': resolve('src/common'), 'components': resolve('src/components'), 'api': resolve('src/api'), } }, } ``` 在table.vue组件中,可以改修为: ```js import Loading from 'components/loading/loading.vue' ``` **在vue文件使中**,用别名路径加载静态资源时\(样式文件,图片等\),需要在路径前加上波浪号\(~\),以下是home.vue组件的部分代码。 ```js <template> ...... <img src='~common/images/logo.png'> ..... </template> ..... <style lang="stylus" rel="stylesheet/stylus"> @import 'scss_vars' .... </style> ``` ## 2、本地图片无法显示 #### 通过v-bind指令动态绑定本地图片资源无法显示问题。 场景:通过变量保存图片的src路径,或者在v-for中循环显示图片。 ```js imgUrl : './test.png' <img :src='imgUrl' /> // 此时webpack只会把它当做字符串处理从而找不到图片地址(即不会对该图片进行打包),无法正确引用该本地图片 ``` 解决方法 ``` 1、将静态资源图片放在src同级别的static文件夹中。 webpack将static文件夹中的内容拷贝到项目运行的根目录下。不会编译与压缩 2、imgUrl: "require('./test.png')" ,该方法会将图片转成base64存在内存中 3、import avatar from './logo.png' imgUrl : avatar ``` ### ## 3、前后端分离,前端请求后台api接口 #### 场景 在开发环境下,通过 `npm run dev` 在本地运行项目。 vue -cli 将会在本地启动一个node服务器。(http:loaclhost:8080) 当访问其他后台api时,因为vue的localhost与访问域名不一致导致,会出现跨域问题。vue-cli通过代理服务解决该问题。 代理服务:简单理解为把你的域名转换成你访问的域名,形成同源,就能访问。 #### 代理设置 在config /index.js 文件中, ```js dev: { env: require('./dev.env'), port: 8080, autoOpenBrowser: true, assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: { '/api':{ target:"http://172.16.61.118:8086",//设置你调用的接口域名和端口号 别忘了加http changeOrigin:true, pathRewrite:{ '^/api':''//这里理解成用‘/api'代替target里面的地址,后面组件中我们掉接口时直接用api代替 //比如我要调用'http://40.00.100.133:3002/user/login',直接写‘/api/user/login'即可 } } } ``` 当然,在项目上线后,还是需要配合后台进行跨域设置的。 #### 注意 当项目采用单点登录时,通过代理转发后台请求会导致 > 登录页请求seesion和index页请求的seesion不一致。 此时,不能再使用后台代理功能。 ## 4、开发环境下,让别人可以访问你的项目 #### 场景 在开发环境下,通过 `npm run dev` 在本地运行项目。 当项目进行到一定阶段时,通常对需求方进行项目展示。vue-cli默认开启的node本地项目其他人是无法访问的, #### 修改项目启动的host 在config > index.js 下面,修改host的值。例如: ```js module.exports = { dev: { ...... // host: 'localhost', // can be overwritten by process.env.HOST host: '0.0.0.0' // 或在改成本地电脑 IP port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined ....... ``` 此时,不能通过localhost:8080来访问项目,需要通过 http://yourip:8080 访问。