基于http-server和frp上线服务前端

目标

  1. 上线项目到服务器
  2. 开发过程中更改代码后能快速响应
  3. 不希望繁琐地上传文件

配置frp端口

增加配置,将主机上的想要映射的前端端口,通过frp映射到云服务器的80端口。配置信息如下:

[[proxies]]
name = "front"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8888
remotePort = 80

运行

运行bat脚本文件,开始frp服务。

@echo off

if not defined TAG (
	set TAG=1
	start wt.exe -p "cmd" %0
	exit
)

:home
frpc -c frpc.toml
goto home

使用

npm run dev

刚开始将前端的开发环境直接映射到云端,虽然可以顺利访问,但是由于开发时没有经过优化,出现了加载速度过慢的情况。

npm run build:prod

还是按照普通操作将vue项目打包成了dist文件夹。
但是上传文件进行部署还是非常困难。
经过技术选型,找到了http-server这个工具。
在dist文件夹内,只需要简单的运行http-server -p 8888即可将文件以http的形式运行在本地的8888端口,又因为之前运行了frp端口映射,因此直接访问云服务器所在IP直接可以运行。

// vue.config.js - Vue 2 项目配置文件(基于 webpack) const path = require('path') function resolve(dir) { return path.join(__dirname, dir) } // 根据环境决定 publicPath function publicPath() { if (process.env.NODE_ENV === 'production') { return '././' // 生产环境:相对路径 } else { return '/' // 开发环境:根路径 } } module.exports = { publicPath: publicPath(), // 动态设置资源引用路径 configureWebpack: { resolve: { alias: { '@': resolve('src') // 设置 @ 指向 src 目录 }, fallback: { // 兼容 Node.js 内置模块在浏览器中缺失的问题 path: require.resolve('path-browserify'), fs: require.resolve('browserify-fs'), os: require.resolve('os-browserify/browser'), timers: require.resolve('timers-browserify'), buffer: require.resolve('buffer'), stream: require.resolve('stream-browserify') } } }, lintOnSave: false, // 关闭保存时 ESLint 校验 devServer: { proxy: { '/springbootw12d6cw5': { target: 'http://192.168.1.15:9090/springbootw12d6cw5/', // 后端地址 changeOrigin: true, // 支持跨域 secure: false, // 不校验 HTTPS 证书 pathRewrite: { '^/springbootw12d6cw5': '' // 重写路径:去掉前缀 } } } }, chainWebpack(config) { // SVG 图标处理:将 icons 目录下的 SVG 用 svg-sprite-loader 处理 config.module .rule('svg') .exclude.add(resolve('src/icons')) .end() config.module .rule('icons') .test(/\.svg$/) .include.add(resolve('src/icons')) .end() .use('svg-sprite-loader') .loader('svg-sprite-loader') .options({ symbolId: 'icon-[name]' }) .end() } } worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name _; charset utf-8; # 前端 build 文件夹位置(Windows) root F:/www/myapp; index index.html index.htm; # 【规则1】处理前端 SPA 路由 location / { try_files $uri $uri/ /index.html; } # 【规则2】代理 /springbootw12d6cw5 请求到后端,并重写路径 location /springbootw12d6cw5/ { # 使用 rewrite 去掉前缀,然后代理 rewrite ^/springbootw12d6cw5(.*)$ $1 break; proxy_pass http://192.168.1.15:9090; # 注意没有路径! proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } # 错误页面 error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } 外网如何访问我的vue
09-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值