vue專案使用static目錄存放圖片解決方案
阿新 • • 發佈:2018-12-05
-
-
解決方法:在伺服器上設定SCP,即可使用絕對路徑。
<template> <div> <h1>HTML直接使用</h1> <img src="/static/images/b1.jpg" alt=""> <h1>JS使用</h1> <img :src="imgUrl" alt=""> <h1>css中使用</h1> <div class="bg"></div> </div> </template> <script>export default { data () { return { imgUrl: '/static/images/b2.jpg' } } } </script> <style scoped> .bg{ width: 750px; height: 600px; background:url('/static/images/b3.jpg'); } </style>
解決方法:
-
HTML中使用相對路徑讓vue正常打包轉換路徑;
-
JS中使用直接設定路徑為打包後應該顯示的路徑
./static/images/b2.jpg
即可正常顯示 -
CSS中使用因為打包後代碼都是在 css-- * .css檔案中,所以我們使用
../../static/images/b3.jpg
。同時還需要修改兩個地方的設定
【build/utils.js檔案】
if (options.extract) { return ExtractTextPlugin.extract({ use: loaders, fallback: 'vue-style-loader', publicPath: '../../' //新增這一句,作用是設定打包過程中提取CSS的方法 }) } else { return ['vue-style-loader'].concat(loaders) }
【config/index.js 檔案】
// 找到build build: { assetsSubDirectory: 'static', assetsPublicPath: '/', } // 修改為 build: { assetsSubDirectory: './static',// 子目錄---解決css相對路徑的問題 assetsPublicPath: './', //資源專用路徑---解決JS路徑問題 }
【使用演示】
<template> <div> <h1>HTML直接使用</h1> <img src="../../static/images/b1.jpg" alt=""> <h1>JS使用</h1> <img :src="imgUrl" alt=""> <h1>css中使用</h1> <div class="bg"></div> </div> </template> <script> export default { data () { return { imgUrl: './static/images/b2.jpg' } } } </script> <style scoped> .bg{ width: 750px; height: 600px; background:url('../../static/images/b3.jpg'); } </style>
以上就是我整理的使用static目錄存放圖片的解決方案,如果你有其他好的建議可以聯絡我哦!