公司项目页面是jsp,前端开发用的是webpack + vue全家桶。项目部署时会动态配置一个相对路径css
eg. <script src="<%=request.getContextPath()%>/vue-static/build-dist/manifest.js"></script>
前端
webpack输出配置vue
output: {
// 文件输出目录
path: resolve('./build-dist'),
// 资源加载路径
publicPath: '/vue-static/build-dist/',
......
}
复制代码
jsp页面中引入的 js、css、img 均可以经过这种方式引入,可是 publicPath 配置项是写死的,webapck编译后的js,css引入的字体、图片在引入时会缺乏相对路径致使404错误。webpack
查看webpack文档,发现一神器__webpack_public_path__。用一句话来解释的话,这货就是output配置中的“publicPath”参数另一种配置方式。
ios
<script>
// 全局用到的信息
var INFO_G = {
// 上下文路径
contextPath: '<%=request.getContextPath()%>',
// 企业id
entId: '${entId}',
// 用户id
userId: '${userId}'
};
</script>
复制代码
output: {
// 文件输出目录
path: resolve('./build-dist'),
// 资源加载路径
publicPath: '',
......
}
复制代码
__webpack_public_path__ = INFO_G.contextPath + '/vue-static/dist/';
复制代码
import './config'
import Vue from 'vue'
import App from './app.vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-default/index.css'
import router from './router'
import axios from 'axios'
复制代码
参考文档:webpackweb