採用了Vue-cli的方式。javascript
一、反向代理css
devServer: { host: '127.0.0.1', port: 9000, proxy: { '/gonghui/': { target: 'http://127.0.0.1', secure: false, changeOrigin: true, pathRewrite: { '^/gonghui': 'gonghui' } } }, historyApiFallback: { index: url.parse(options.dev ? '/assets/' : publicPath).pathname } },
二、main.jsvue
import Vue from 'vue' import App from './App' import router from './router' /* * iview的全局引入 */ import iView from 'iview'; import 'iview/dist/styles/iview.css'; Vue.use(iView); import axios from 'axios' /* * axios的引入 */ Vue.prototype.axios=axios; import './style/index.scss'; Vue.config.productionTip = false /* eslint-disable no-new */ new Vue({ el: '#app', router, components: { App }, template: '<App/>' })
三、入口增長了java
entry: {
app: ['babel-polyfill','./src/main.js']
},ios
四、vue-cli 打包壓縮(npm run build)文件後,默認根目錄修改,解決先後端代碼結合的路徑問題。web
將config/index.js文件中的assetsPublicPath 值修改成你須要的根目錄,原來默認是‘/’,下圖中加上了"elkdashboard/",「elkdashboard」是本項目的項目名,用tomcat起的服務URL默認根目錄會加上「/項目名/」。這樣將打包好的代碼放到項目的webapp目錄下就不會出現根目錄不統一的狀況了,改爲'./'就成相對路徑了vue-cli
五、Iview字體圖標 css文件引用的字體圖標路徑打包以後找不到npm
在vue-cli項目中build/utils.js中找到以下代碼塊,添加
publicPath:’../../’axios
if (options.extract) { return ExtractTextPlugin.extract({ use: loaders, fallback: 'vue-style-loader', publicPath:'../../' //添加這句話 }) } else { return ['vue-style-loader'].concat(loaders) }
vue會用loader將項目中的各類本地URL轉換
build後F12查看network,發現資源404,而且去查找的路徑是
/dist/static/css/static/img/boston.0d72519.jpg
顯然,css中引用的圖片地址有問題,須要返回上兩級目錄。
CSS中引用的字體文件,圖片文件路徑錯誤的問題都解決了。後端