关于vue3+niginx前端部署问题

这篇具有很好参考价值的文章主要介绍了关于vue3+niginx前端部署问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

曾经有人给我讲,所谓个人技术是死磕出来的,只有经过不断的试错和解决过程所有问题,以及不断变换思路去解决一件问题的过程,就是个人技术的成长。

最近在给自己搭建的小服务加一个bolg模块,在网上大概看了下轻量级的框架,最后使用vueQuill富文本编辑器 ,期间产生诸多问题,经过3天时间,基本解决,仅以此记录解决过程,给需要的人提供思路。

网站地址:TestManagePlatform

旧版的部署方式:

整个前端服务放到服务器,容器镜像打包,npm run serve 方式启动

niginx 配置 

map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
}

server{
      listen       443 ssl;
      server_name    前端服务.top;
      ssl_certificate /etc/nginx/conf/8673314_datafactory.metaversed.top.pem;
      ssl_certificate_key /etc/nginx/conf/8673314_datafactory.metaversed.top.key;
      ssl_session_cache    shared:SSL:1m;
      ssl_session_timeout  5m;
      server_tokens off;
      fastcgi_param   HTTPS                  on;
      fastcgi_param   HTTP_SCHEME            https;
      access_log /var/log/nginx/access.logs;
    
      if ($host ~ "\d+\.\d+\.\d+\.\d") {
        return 404;
        }
      location / {
          proxy_pass         http://你的服务器本地地址:8000/;
          proxy_redirect     default;
          proxy_http_version 1.1;
        }
   }
server{
      listen       80;
      listen       443 ssl;
      server_name    后端服务.top;
      ssl_certificate /etc/nginx/conf/9374020_good.metaversed.top.pem;
      ssl_certificate_key /etc/nginx/conf/9374020_good.metaversed.top.key;
      server_tokens off;
      fastcgi_param   HTTPS                  on;
      fastcgi_param   HTTP_SCHEME            https;
      access_log /var/log/nginx/access.logs;

      if ($host ~ "\d+\.\d+\.\d+\.\d") {
        return 404;
        }
      location / {
          proxy_pass         http://你的服务器本地地址:8088/;
          proxy_redirect     default;
          proxy_http_version 1.1;
        }
   }

这个方式有很多问题

1、整体包内容比较大,加载时间长。

2、服务器环境npm install 时依赖包安装版本可能存在不一致情况,出现问题不好分析。

3、一些资源文件加载路径问题会导致服务启动不起来。

本次出现问题在于,本地调试完成后,由于引入

import { QuillEditor } from '@vueup/vue-quill'
import '@vueup/vue-quill/dist/vue-quill.snow.css'

服务器提示:找不到'@vueup/vue-quill' 和'@vueup/vue-quill/dist/vue-quill.snow.css'

由于是docker 先打镜像包,在启动docker-compose 文件,一开始怀疑是文件路径不识别。

折腾许久后,发现是镜像包没有把相关新增依赖加上。于是开始调试DockerFile 

FROM node
WORKDIR /root
COPY ./ .
RUN npm install 

最后发现npm install 依赖时候除了很多错。大概率都是依赖安装失败。

于是决定永久避开这个坑,采用静态文件方式部署前端

静态文件方式部署前端

1、前端vue.config.js 配置

module.exports = {
    lintOnSave:false,
// 这里一定一定记得配置为‘/’而非“./”
    publicPath:"/",
    devServer: {
        port:8000,
        proxy: {  //配置跨域
            '/api':{
                 target: 'http://127.0.0.1:8088/',  
                //这里后台的地址模拟的;应该填写你们真实的后台接口
                changeOrigin: true,   //允许跨域
                // ws: true, // proxy websockets
                pathRewrite: {
                    '^/api': ''
                },
                host: '0.0.0.0',
            }
        }
    }
}

2、打静态包dist 

npm run build

执行完成后项目多一个dist 包

关于vue3+niginx前端部署问题,Nginx,linux,Vue3,前端,vue,nginx

 4、将整个包文件放入niginx 配置的index 入口目录下去,并更新niginx.config 文件

新的配置方式:

server {
        listen       80;
        listen       443 ssl;
        server_name  前端域名.top; #域名
        ssl_certificate /etc/nginx/conf/8673725_www.metaversed.top.pem;
        ssl_certificate_key /etc/nginx/conf/8673725_www.metaversed.top.key;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        fastcgi_param   HTTPS                  on;
        fastcgi_param   HTTP_SCHEME            https;
        access_log /var/log/nginx/access.logs;
    location / {
        root  /html;
        index  index.html index.htm; #默认访问的首页内容
        try_files $uri $uri/  @router; 
        }
    location @router {
       #对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件
       #因此需要rewrite到index.html中,然后交给路由在处理请求资源
       rewrite ^.*$ /index.html last;
       }
    location /api/ {
          proxy_set_header Host $http_host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header REMOTE-HOST $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass         http://服务器本地地址:8088/;
        }
}

root  /html;  这个文件下存放dist的内容,或者挂在到服务器 dist 具体的路径上。实时更新dist文件即可实现热部署。

其中 location / 配置前端入口,这里直接使用了服务器首页配置

try_files $uri $uri/  @router;  这个一定要配置,静态资源跳转全靠它

其中location /api/ 配置后端代理

proxy_pass         http://服务器本地地址:8088/;  #对应到你的后端服务地址

到此整个服务算是换了一个新的方式部署。

总结:

至于docker 容器化部署是出现的依赖包文件不存在问题,目前可以确认的是以为打包镜像失败导致。至于具体原因还没有找到。前端本就依赖过多,如果本地和线上无法保证依赖包一致或者复用的话,不如直接使用本地打出来的dist 包进行静态资源不熟。好处多多。文章来源地址https://www.toymoban.com/news/detail-654004.html

到了这里,关于关于vue3+niginx前端部署问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Nginx 同一端口下部署多个 Vue3 项目

    前端多项目部署到 Nginx 的同一监听端口下的解决方案,项目由一个主项目和多个子项目组成,主项目和子项目都是单独打包。 主子项目之间是使用的腾讯开源的无界(WebComponent 容器 + iframe 沙箱)前端框架,能够完善的解决适配成本、样式隔离、运行性能、页面白屏、子应用

    2024年02月07日
    浏览(45)
  • 用Nginx打包部署vue3项目及404和500解决

    打包vue3 安装Nginx 这里安装步骤比较繁琐,现在服务器比较便宜,如果想用Nginx,可以去菜鸟教程https://www.runoob.com/linux/nginx-install-setup.html 配置安装一下 找到安装路径下的 conf 文件夹 下 nginx.conf 文件,用编辑器打开这个文件 里边的 4. 去cmd中检查一下配置的文件, 可以看到

    2024年02月20日
    浏览(45)
  • Vite4 + Vue3 项目打包并发布Nginx服务器 (前端必看)

    这里因为我们有的小伙伴可能不太需要服务器,单纯学习的话也没有必要去买一个服务器。如果需要把自己的东西部署到公网上,有很多方式,自行百度。你也可以购买阿里云或者腾讯云。逻辑都是一样的,我这里使用的虚拟机+centos系统,我已经提前在自己的机器安装好了。

    2024年02月05日
    浏览(87)
  • 部署若依前端vue3后端SSM项目实战

    前端部署在nginx 后端部署在tomcat 系统 前端服务器 后端服务器 前端项目架构 后端项目架构 win10 nginx1.22.1 tomcat9 vue3 ssm linux 亲测! 环境同样适用。 前端项目修改项目下载地址 GIThub RuoYi-Vue3 vite.config.js 基本不用动, 默认打包为文件夹名 dist , 不用dist可以自定义(我用的自定义) 前

    2024年04月09日
    浏览(41)
  • 解决vue3前端获取文件的绝对路径问题

    公司的项目是基于vue3的,由于需求需要前端获取用户选的文件的绝对路径。但是浏览器处于安全策略无法获取真实的文件路径,只能拿到相对路径或者是D:fakepathxxxx. 看了网上很多方法都很坑,明明没拿到路径非说拿到了,浪费了很多时间,这里要说单纯依靠vue是解决不了的

    2024年02月09日
    浏览(42)
  • 关于vue3+版本引入element-ui使用icon问题 (icon不显示问题)vue3中input里面不显示icon图标

    1)、引入  2)、效果: 出来了一个大图标  3)、代码 1)、引入  2)、效果:  3)、代码

    2024年02月16日
    浏览(53)
  • 解决vue3+echarts关于无法获取dom宽度和高度的问题

    近期写vue3项目,很多地方都用到了echarts,刚开始写的时候,发现图一直出不来,报错/报警内容一般有两项: Uncaught (in promise) Error: Initialize failed: invalid dom. vue3 [ECharts] Can’t get DOM width or height. 分别解释一下这俩报错 第一个报错是在初始化echarts的时候,没有找到对应的dom元素

    2024年02月14日
    浏览(36)
  • 关于unaipp生成的vue3项目开启微信云函数所遇到的问题

    使用uniapp创建的vue3项目,需要用到H5静态页面跳转小程序的时候(具体操作看微信开发文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/staticstorage/jump-miniprogram.html),会用到微信开发者工具的云开发,那么在创建的项目里面是没有用到云函数的,就没有云函数的文件夹

    2024年02月08日
    浏览(42)
  • Vue3 - vite 引入本地图片方法,页面引入本地静态资源图像详细教程,解决 UI 前端组件库的图片属性无法使用本地图像问题(无论是本地开发还是打包部署,本地图片的路径正常可用)

    在 webpack 中通常用 require() 来引入静态图片,但在 vite 中这种方法就不行了。 本文实现了 在 vue3+vite 项目开发中,实现引入本地图片(静态资源),并且 build 打包后依然正常运行, 支持普通 img 标签使用,也支持 UI 组件库的各种 “图片属性” 当参数进行使用。 如下图所示

    2024年02月08日
    浏览(67)
  • vite vue3项目打包部署空白页面问题的处理

     问题:vite vue3项目打包部署上线后,发现是空白页面问题的处理 解决方法:1.在我们vite.config.js文件中检查是否有路径的指向                                       2.查看我们的路由模式,将路由模式修改为createWebHashHistory                           

    2024年02月11日
    浏览(58)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包