vue-cli中設置publicPath的幾種方式對比
設置publicPath的幾種方式對比
publicPath打包設置
1. 不設置(默認為 publicPath: ‘/’) 或者設置 publicPath: '/'
// vue.config.js module.exports = { publicPath: '/', }
html中被打包的css和js路徑如下
<!DOCTYPE html> <html lang=en> <head> <meta charset=utf-8> <meta http-equiv=X-UA-Compatible content="IE=edge"> <meta name=viewport content="width=device-width,initial-scale=1"> <link rel=icon href=/favicon.ico> <title>vue-manage-system-template-js</title> <link href=/js/about.62bc742c.js rel=prefetch> <link href=/css/app.1d486654.css rel=preload as=style> <link href=/css/chunk-vendors.2ac5db4b.css rel=preload as=style> <link href=/js/app.a62b0400.js rel=preload as=script> <link href=/js/chunk-vendors.7a1d5ffa.js rel=preload as=script> <link href=/css/chunk-vendors.2ac5db4b.css rel=stylesheet> <link href=/css/app.1d486654.css rel=stylesheet> </head> <body> <noscript><strong>We're sorry but vue-manage-system-template-js doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript> <div id=app></div> <script src=/js/chunk-vendors.7a1d5ffa.js></script> <script src=/js/app.a62b0400.js></script> </body> </html>
2.設置 publicPath: ‘./’ 好處是隨處可打開,直接在打包文件夾就可打開html頁面
// vue.config.js module.exports = { publicPath: './', }
html中被打包的css和js路徑如下
<!DOCTYPE html> <html lang=en> <head> <meta charset=utf-8> <meta http-equiv=X-UA-Compatible content="IE=edge"> <meta name=viewport content="width=device-width,initial-scale=1"> <link rel=icon href=favicon.ico> <title>vue-manage-system-template-js</title> <link href=js/about.62bc742c.js rel=prefetch> <link href=css/app.1d486654.css rel=preload as=style> <link href=css/chunk-vendors.2ac5db4b.css rel=preload as=style> <link href=js/app.a62b0400.js rel=preload as=script> <link href=js/chunk-vendors.7a1d5ffa.js rel=preload as=script> <link href=css/chunk-vendors.2ac5db4b.css rel=stylesheet> <link href=css/app.1d486654.css rel=stylesheet> </head> <body> <noscript><strong>We're sorry but vue-manage-system-template-js doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript> <div id=app></div> <script src=js/chunk-vendors.7a1d5ffa.js></script> <script src=js/app.a62b0400.js></script> </body> </html>
3.設置 publicPath: 'vmst’
// vue.config.js module.exports = { publicPath: 'vmst', }
html中被打包的css和js路徑如下
<!DOCTYPE html> <html lang=en> <head> <meta charset=utf-8> <meta http-equiv=X-UA-Compatible content="IE=edge"> <meta name=viewport content="width=device-width,initial-scale=1"> <link rel=icon href=vmst/favicon.ico> <title>vue-manage-system-template-js</title> <link href=vmst/js/about.62bc742c.js rel=prefetch> <link href=vmst/css/app.1d486654.css rel=preload as=style> <link href=vmst/css/chunk-vendors.2ac5db4b.css rel=preload as=style> <link href=vmst/js/app.a62b0400.js rel=preload as=script> <link href=vmst/js/chunk-vendors.7a1d5ffa.js rel=preload as=script> <link href=vmst/css/chunk-vendors.2ac5db4b.css rel=stylesheet> <link href=vmst/css/app.1d486654.css rel=stylesheet> </head> <body> <noscript><strong>We're sorry but vue-manage-system-template-js doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript> <div id=app></div> <script src=vmst/js/chunk-vendors.7a1d5ffa.js></script> <script src=vmst/js/app.a62b0400.js></script> </body> </html>
vue.config.js publicPath "./" npm run build無效
outputDir
assetsDir
indexPath
必須填
module.exports = { publicPath: process.env.NODE_ENV === 'production' ? './' : '/', outputDir: "dist", assetsDir:"static", indexPath:'index.html', devServer: { overlay: { warnings: false, errors: false }, // 設置主機地址 host: 'localhost', // 設置默認端口 port: 8080, // 設置代理 proxy: { '/api': { // 目標 API 地址 target: 'http://192.168.124.231:8707/', // 接口的域名 // 如果要代理 websockets ws: false, // 將主機標頭的原點更改為目標URL changeOrigin: true } } } }
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- js與css的阻塞問題詳析
- Vue 打包後相對路徑的引用問題
- 基於python詳解PyScript到底是什麼
- vue利用vue meta info設置每個頁面的title與meta信息
- Vue項目中對index.html中BASE_URL的配置方式