- 第一:config/index.js中assetsPublicPath: ‘/‘改為’./‘
打包之后漏麦,外部引入 js 和 css 文件時客税,如果路徑以 ' / ' 開頭,在本地是無法找到對應(yīng)文件的(服務(wù)器上沒問題)撕贞。所以如果需要在本地打開打包后的文件更耻,就得修改文件路徑。
- 第二:更改工程 build/utils.js 文件中 ExtractTextPlugin 插件的options 配置捏膨,重新打包:
publicPath 屬性值為打包后的 app.css文件至index.html文件的相對路徑
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
publicPath: '../../', // 這里是/static/css/static/img/img@2x.c634efc.png 所以跳出兩層../../秧均; 注意配置這一部分食侮,根據(jù)目錄結(jié)構(gòu)自由調(diào)整
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
加上 publicPath: '../../', 配置后重寫打包即可。
- 第三:
- 第四:img中的src都在data中定義目胡,
data() {
return{
imgUrl:’./static/img/ic_rotate@2x.png’
}
}
- 第五:css中的url定義為:
url("…/…/static/img/斑馬.jpg")
- 第六:static文件夾在項目根目錄下
以上方法都不行的話锯七,簡單粗暴地修改打包后的dist下的index.html文件中的資源引入地址吧。誉己。眉尸。
./static/...
頁面可以正常打開了,但是vue-router跳轉(zhuǎn)路由頁面無法顯示巨双,其實噪猾,這個也很簡單。
解決方法:打開index.js看路由配置筑累,mode:' hash ' 改這個配置即可袱蜡,如圖:
一般情況router開啟了history模式,如果是本地打包后訪問的話慢宗,是沒有問題的坪蚁,但是一旦部署到服務(wù)器上面,還需要在服務(wù)端進行配置修改镜沽,若沒有進行相關(guān)配置敏晤,則會報錯。詳細原因:傳送門