vue/cli3.0脚手架部署到nginx时页面空白的问题及解决

 更新时间:2023年10月19日 08:55:32   作者:旭氏美术馆  
这篇文章主要介绍了vue/cli3.0脚手架部署到nginx时页面空白的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

明确一下问题

vue/cli3.0部署到nginx出现页面白屏,不能正常显示网页内容,利用F12,经过初步判断,是路径设置问题。

对比一下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文件,所以并不好去修改路径,当然貌似也可以去手动创建以个build文件,在里面进行手动编辑,这样肯定是会比较麻烦的。

我在遇到这个问题的时候,在网上搜集了很多办法,大多数都是以修改2.0的build文件中的路径为主。

后来终于找到一种解决办法,而且只加了一行代码.

解决办法

就是在vue.config.js文件中加一个基本路径

baseUrl: './',

首先,这句话的意思就是让打包后(npm run build )的index.html去找相对路径下的css和js文件。

一般而言,打包后的文件都在dist文件下,index.html与js和css处于同一级目录下,这样设置路径之后就会使得index直接去同级目录下去检索.

而在不这样设置的情况下,会默认去读取绝对根目录下的文件,css和js一般不在根目录下,而是与index.html同级,找不到样式便不能加载页面样式,这也是出现空白的原因所在

再看看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: {},
 // 生产环境是否生成 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中的项目配置写法,其中用到了基本路径和后台代理等相关配置。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue项目base64加解密使用方式以及解密乱码

    vue项目base64加解密使用方式以及解密乱码

    这篇文章主要介绍了vue项目base64加解密使用方式以及解密乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • vue学习笔记五:在vue项目里面使用引入公共方法详解

    vue学习笔记五:在vue项目里面使用引入公共方法详解

    这篇文章主要介绍了在vue项目里面使用引入公共方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • element-ui使用导航栏跳转路由的用法详解

    element-ui使用导航栏跳转路由的用法详解

    今天小编就为大家分享一篇element-ui使用导航栏跳转路由的用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • 使用vue-i18n 入口文件配置控制台报警问题解决

    使用vue-i18n 入口文件配置控制台报警问题解决

    这篇文章主要介绍了使用vue-i18n 入口文件配置控制台报警问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • vue+uniapp瀑布流布局多种实现方式示例代码

    vue+uniapp瀑布流布局多种实现方式示例代码

    由于使用uniapp开发的微信小程序不需要考虑响应式,因此瀑布流的实现相对于pc端更为简单,下面这篇文章主要给大家介绍了关于vue+uniapp瀑布流布局多种实现方式的相关资料,需要的朋友可以参考下
    2023-03-03
  • 前端Vue数据不更新问题的深入分析与解决方案

    前端Vue数据不更新问题的深入分析与解决方案

    在前端开发中,Vue.js 是一个非常流行的 JavaScript 框架,它以其简洁的语法和强大的响应式系统而闻名,然而,尽管 Vue 的响应式系统非常强大,但在实际开发中,开发者仍然可能会遇到数据不更新的问题,本文将深入探讨 Vue 数据不更新的常见原因,并提供详细的解决方案
    2025-03-03
  • Django与Vue语法的冲突问题完美解决方法

    Django与Vue语法的冲突问题完美解决方法

    这篇文章主要介绍了Django与Vue语法的冲突问题完美解决方法,本文给大家分享了两种解决方法,需要的朋友参考下吧
    2017-12-12
  • Vue项目中使用jsonp抓取跨域数据的方法

    Vue项目中使用jsonp抓取跨域数据的方法

    这篇文章主要介绍了Vue项目中使用jsonp抓取跨域数据的方法,本文通过实例代码讲解的非常详细,需要的朋友可以参考下
    2019-11-11
  • Vue-Cli项目优化操作的实现

    Vue-Cli项目优化操作的实现

    这篇文章主要介绍了Vue-Cli项目优化操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • vue中的v-slot指令使用

    vue中的v-slot指令使用

    在Vue中, v-slot 指令用于定义插槽的模板内容,v-slot 指令可以用于标签或组件标签上,以便在子组件中使用插槽,这篇文章主要介绍了vue v-slot指令,需要的朋友可以参考下
    2023-08-08

最新评论