nginx 部署vue项目,页面白屏或者页面刷新出现404问题

这篇具有很好参考价值的文章主要介绍了nginx 部署vue项目,页面白屏或者页面刷新出现404问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目场景:

将vue项目打包部署到nginx上面运行


问题描述

问题一:运行时页面白屏。

问题二:页面可以正常显示,当刷新页面的时候页面报404错误。


原因分析:

页面白屏分析:我们可以先查看一下nginx下的 logs/error.log 日志文件,确定我的问题是因为项目打包时候路劲配置问题。

页面404分析:我们在将 vue项目打包部署时,地址栏的地址只是 vue的路由,并不是真正的文件目录地址。所有的路由都是依赖于 SPA单页应用的index.html,所以当我们在刷新时,按照地址栏的地址,找不到对应的文件,就产生404。


解决方案:

页面白屏解决:

配置vue项目根目录下的vue.config.js文件,代码如下:

const { defineConfig } = require('@vue/cli-service')

// 打包配置
module.exports = {
  transpileDependencies: true, // 配置需要被 Babel 转译的依赖项。
  publicPath: process.env.NODE_ENV === 'production' ? '/dist/' : './',
  outputDir: "dist", //输出文件目录
  assetsDir: "static", //静态资源文件名称
  productionSourceMap: false, //去除打包后js的map文件
  lintOnSave: false,
  runtimeCompiler: false,//去掉console

  // 解决跨域
  devServer: {
    host:"127.0.0.1:xxxx",// 以上的ip和端口是我们本机的;下面为需要跨域的
    proxy: { //配置跨域 		
      '/api': {
        target: " ", //这里后台的地址模拟的;应该填写你们真实的后台接口
        ws: true,
        secure: false, // 如果是https接口,需要配置这个参数
        changOrigin: true, //允许跨域
        pathRewrite: {
          '^/api': '' //请求的时候使用这个api就可以
        }
      }
    },
    historyApiFallback: true,
  }
}

页面404解决:

配置nginx中conf目录下的nginx.conf文件,代码如下:

location /dist {
	alias html/dist;
	index  index.html index.htm;
	try_files  $uri $uri/ /dist/index.html;
}

location @router {
	rewrite ^.*$ /dist/index.html;
}

解释:当我们访问一个地址为 http://localhost:8056/dist/AssetChanges的时候先通过alias 确定路径 html/dist,然后通过try_files配置,首先会在html/dist下去找 $uri,也就是login这个文件,这个时候因为没有login文件,就会去找 $uri/ ,也就是 /login/ 这个文件目录,如果还是没找到,就会将其重定向到 @router,在定义的 @router 里,我们将其都指向 /dist 文件夹下的 index.html。这样就成功解决问题文章来源地址https://www.toymoban.com/news/detail-616333.html

到了这里,关于nginx 部署vue项目,页面白屏或者页面刷新出现404问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue项目切换页面会白屏,刷新之后才会正常显示(已解决)

    面对这种问题有两个方面: 1.就是template中没有div标签/template 错误写法: 正确写法:  切记:div标签必须是包裹住所有的标签,除了template外这个div就是爹 2.template中有div标签/template 错误写法:原因:他会把注释当作为一个节点,所以div就不是最大的容器了,他要先识别div标

    2024年02月10日
    浏览(43)
  • docker使用nginx部署vue刷新页面404

    从docker内部复制出来的配置文件是这样的,但是刷新页面之后就显示404,关键是我两个前端项目都是用的这一个配置文件,但是只有一个项目出现刷新浏览器显示404的问题,这给我搞懵了!!! 在网上查找问题原因和解决办法,但是大多数都说是资源找不到,让修改配置文件

    2024年01月18日
    浏览(34)
  • vue/react项目刷新页面出现404的原因以及解决办法

    问题描述:vue/react项目,正常的页面操作跳转,不会出现404的问题,但是一旦刷新,就会出现404报错。 产生原因:我们打开vue/react打包后生成的dist文件夹,可以看到只有一个 index.html 文件及一些静态资源,这个是因为vue/react是单页应用(SPA),只有一个index.html作为入口文件,

    2024年02月06日
    浏览(41)
  • vue3 动态添加路由刷新后页面丢失(白屏)问题

    动态添加路由操作一般是用vuex或者Pinia封装,在登录页面调用 如果出现刷新页面丢失有两种可能: 1:vuex或者Pinia没有做持久化处理 2:动态添加路由需要在main.ts里面也调用一次 不需要路由守卫即可实现 注意:必须要在页面挂载前还有路由配置完成前调用添加,不然还是丢

    2024年02月16日
    浏览(44)
  • 服务器部署—若依【vue】如何部署到nginx里面?nginx刷新页面404怎么办?【完美解决建议收藏】

    服务器部署项目我们大家都会遇到,但是有些铁子会遇到很多的问题,比如前端部署nginx如何操作? 前端有单纯的静态页面、还有前后端分离的项目;这里博主直接分享最牛最到位的前后端分离项目的前端部署到nginx上面,以若依项目【springboot+vue】为例,实现将前端部署到

    2024年02月03日
    浏览(45)
  • Nginx笔记-vue项目刷新出现404(try_files和index)

    目前的nginx.conf配置: 部署是成功了,但是有个问题,就是感觉整个前端不会找uri,按F5或者在浏览器输入url都会404,只从vue默认的地方进,才行。 解决方法: 原因: index index.htm index.html; index 就是根目录,也就是只识别“/”结尾的,输入不存在或者刷新页面的路径就直接报

    2024年02月09日
    浏览(33)
  • 解决Vue3+Vite3 打包部署到nginx后配置非根目录刷新页面报错空白

    报错内容 解决方法 router文件 vite.config.ts nginx.conf 配置中路径apps是我自建的存放前端页面的文件夹 起关键作用的是 try_files $uri $uri/ /demo/index.html ,当然上面项目文件夹demo也需保持一致 alias 后面的路径是Vue项目打包后dist静态文件服务器存放路径,一般在nginx下面建一个文件夹

    2024年02月11日
    浏览(32)
  • vue3项目部署到服务器,刚打开没事,一刷新页面就404

    vue3项目部署到服务器,刚打开没事,一刷新页面就404 不知道什么原因。百度了下才发现问题所在 问题所在: vue-router历史模式的问题: vue3中历史模式,默认改为了HTML5模式: createWebHistory() 解决办法: createWebHistory 换成 createWebHashHistory ,将历史模式,由当前的HTML5模式,改

    2024年01月18日
    浏览(41)
  • Vue配合Nginx部署出现404、页面无法跳转、后端请求失败问题解决方案

    常见问题有: 1、部署后,打开地址可以看到,但是刷新后出现404。 2、Vue的路由资源并不一定是真实路径,导致页面无法跳转或其他资源加载问题。 3、请求后端接口地址失败。

    2024年02月13日
    浏览(28)
  • 前端部署nginx刷新后404,解决Nginx刷新页面后404的问题

    使用Nginx部署后,登录页面刷新一下就出来404,如下图: 刷新以后 ,页面变成404 Not Found 查看了一下nginx配置,出现问题的配置是这样的: 修改后的配置是这样的 添加了 try_files $uri $uri/ /index.html, 然后重启一下nginx问题就解决了。 解释: try_files 表示检查文件是否存在,返回

    2024年02月13日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包