vue/cli3.0腳手架部署到nginx時頁面空白的問題及解決
明確一下問題
vue/cli3.0部署到nginx出現(xiàn)頁面白屏,不能正常顯示網(wǎng)頁內容,利用F12,經(jīng)過初步判斷,是路徑設置問題。
對比一下2.0與3.0.
先對比一下兩個版本腳手架的目錄結構
2.0目錄結構

3.0目錄結構

可見,vue-cli3.0與2.0有一個不同之處是3.0腳手架中沒有build和config文件,在往nginx中部署2.0時,我們可以通過修改build和config中的路徑,就可以成功用nginx訪問,但對于3.0來說,其本身沒有build文件,所以并不好去修改路徑,當然貌似也可以去手動創(chuàng)建以個build文件,在里面進行手動編輯,這樣肯定是會比較麻煩的。
我在遇到這個問題的時候,在網(wǎng)上搜集了很多辦法,大多數(shù)都是以修改2.0的build文件中的路徑為主。
后來終于找到一種解決辦法,而且只加了一行代碼.
解決辦法
就是在vue.config.js文件中加一個基本路徑
baseUrl: './',
首先,這句話的意思就是讓打包后(npm run build )的index.html去找相對路徑下的css和js文件。
一般而言,打包后的文件都在dist文件下,index.html與js和css處于同一級目錄下,這樣設置路徑之后就會使得index直接去同級目錄下去檢索.
而在不這樣設置的情況下,會默認去讀取絕對根目錄下的文件,css和js一般不在根目錄下,而是與index.html同級,找不到樣式便不能加載頁面樣式,這也是出現(xiàn)空白的原因所在。
再看看3.0的文件夾結構
3.0的腳手架,雖然沒有了2.0的build和config文件,卻有了一個vue.config.js文件,利用這個文件,很多的東西都在這里可以配置,其實進一步提升了在vue腳手架中的配置設置。
怎么寫這個文件呢?
附一下vue.config.js的文件語法:
module.exports = {
// 基本路徑
baseUrl: '/',
// 輸出文件目錄
outputDir: 'dist',
// eslint-loader 是否在保存的時候檢查
lintOnSave: true,
// use the full build with in-browser compiler?
// https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only
compiler: false,
// webpack配置
// see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
chainWebpack: () => {},
configureWebpack: () => {},
// vue-loader 配置項
// https://vue-loader.vuejs.org/en/options.html
vueLoader: {},
// 生產環(huán)境是否生成 sourceMap 文件
productionSourceMap: true,
// css相關配置
css: {
// 是否使用css分離插件 ExtractTextPlugin
extract: true,
// 開啟 CSS source maps?
sourceMap: false,
// css預設器配置項
loaderOptions: {},
// 啟用 CSS modules for all css / pre-processor files.
modules: false
},
// use thread-loader for babel & TS in production build
// enabled by default if the machine has more than 1 cores
parallel: require('os').cpus().length > 1,
// 是否啟用dll
// See https://github.com/vuejs/vue-cli/blob/dev/docs/cli-service.md#dll-mode
dll: false,
// PWA 插件相關配置
// see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
pwa: {},
// webpack-dev-server 相關配置
devServer: {
open: process.platform === 'darwin',
host: '0.0.0.0',
port: 8080,
https: false,
hotOnly: false,
proxy: null, // 設置代理
before: app => {}
},
// 第三方插件配置
pluginOptions: {
// ...
}
}
貼一張我在項目中的用例:
這是可以成功部署到nginx中的項目配置寫法,其中用到了基本路徑和后臺代理等相關配置。

總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
vue+uniapp瀑布流布局多種實現(xiàn)方式示例代碼
由于使用uniapp開發(fā)的微信小程序不需要考慮響應式,因此瀑布流的實現(xiàn)相對于pc端更為簡單,下面這篇文章主要給大家介紹了關于vue+uniapp瀑布流布局多種實現(xiàn)方式的相關資料,需要的朋友可以參考下2023-03-03
前端Vue數(shù)據(jù)不更新問題的深入分析與解決方案
在前端開發(fā)中,Vue.js 是一個非常流行的 JavaScript 框架,它以其簡潔的語法和強大的響應式系統(tǒng)而聞名,然而,盡管 Vue 的響應式系統(tǒng)非常強大,但在實際開發(fā)中,開發(fā)者仍然可能會遇到數(shù)據(jù)不更新的問題,本文將深入探討 Vue 數(shù)據(jù)不更新的常見原因,并提供詳細的解決方案2025-03-03
Vue項目中使用jsonp抓取跨域數(shù)據(jù)的方法
這篇文章主要介紹了Vue項目中使用jsonp抓取跨域數(shù)據(jù)的方法,本文通過實例代碼講解的非常詳細,需要的朋友可以參考下2019-11-11

