前言:
因為要同時部署兩個項目,有一個是部署到域名下面的子目錄下,如:https://xxx.com/siot-admin
vue 項目中使用axios請求了本地項目的static文件夾下的json文件,使用npm run build 打包后,json文件請求不到報404:
解決辦法:
Vue-cli打包后部署到子目錄下路徑問題
舉例,若需要部署到www.***.com/catalog1/catalog2/
下,需要更改
-
config/index.js
文件中,build
下assetsPublicPath
屬性為'/catalog1/catalog2/'
,如下:
build: { assetsPublicPath: '/catalog1/catalog2/',
默認情況下該值為'/'
(該屬性目測是webpack
打包時的文件引用路徑的基礎路徑,一級域名下這里應該寫成“./”)。
2.修改路由base
屬性為'/catalog1/catalog2/'
,如下:
export default new Router({ // mode: 'history',
base: '/catalog1/catalog2/', //這個一定要加上 routes: [ { path: '/', name: 'indexContent', component: indexContent } ] })
其中mode
設置為'history'
可清除路徑中的#
(本地測試有效)。
設置完成后重新打包。
問題二: static里面的 font字體在打包后也找不到了
這個字體文件報404
解決辦法:
在build/utils文件中的下圖所示位置添加../../公共路徑
這樣打包的iconfont字體文件路徑時就會加上../../了。引用就沒問題了。而不再需要手動更改css文件中的路徑。