项目打包后配置到node服务器
1.将项目进行打包
npm run build项目根目录下会多出一个打包好的由.js .html .css文件组成的dist文件夹,如图
2.搭建node微型服务器
新建文件夹命名"node服务器",npm init进行初始化,起好包名字node-server然后一路回车,目录下多出package.json文件,
npm i express搭建node服务器
3.打包好的项目配置到服务器
在这个新建文件夹根目录下新建static文件夹,再将刚才打包好的dist文件夹下文件放入这个static文件夹,
新建server.js文件,去配置服务器,如图
4.前端开发配置的代理服务器失效
// 将来打包可能会有这几种情况:
// 1. 打包好后,直接给后端,让后端进行静态托管
// 我们发现直接打包放到后端,会导致请求可能会 404 ,原因是没有走代理
// 我们在前端进行开发的时候,代理是 webpack 帮我们进行的,当打包后,是没有这个代理的
// 1.1 如果接口服务器就是静态资源服务器,只需要把 '/api' 删除,请求会自动请求相同域名下的接口
// 1.2 如果接口服务器不是静态资源服务器,需要把 '/api' 修改为真正请求的地址,重新打包,但是这个时候一定会跨域
// 需要让后端做对应的配置转发 -- 至于怎么做,不用管 -- 其实说白了,也只是在静态资源服务器进行 一次代理
在node配置代理服务器,下载中间件
npm i connect-history-api-fallback
然后在server.js中引入和使用这个中间件:
server.js:
const express=require('express') const { createProxyMiddleware } = require("http-proxy-middleware"); //导入代理服务器 const app=express()
app.use(
"/api",
createProxyMiddleware({
target: "http://192.168.113.249:8081/cms",
changeOrigin: true,
pathRewrite: (path) => path.replace("/api", ""),
})
);
app.use(express.static(__dirname+'/static')) app.get('/person',(req,res)=>{
res.send({
name:'tom',
age:18
})
}) app.listen(5005,(err)=>{
if(!err) console.log('服务器启动成功了')
})
5.需要在server.js文件配置history中间件来解决前端路由history模式下刷新出现404的局面
(可以在npmjs.com网站搜索connect-history-api-fallback,查看这个中间件,然后回到vscode终端输入下面这个命令安装这个中间件)
npm i connect-history-api-fallback
然后在server.js中引入和使用这个中间件
server.js:
const express=require('express')
const history=require("connect-history-api-fallback"); //导入history中间件
const { createProxyMiddleware } = require("http-proxy-middleware"); //导入代理服务器 const app=express()
app.use(history())
app.use(
"/api",
createProxyMiddleware({
target: "http://192.168.113.249:8081/cms",
changeOrigin: true,
pathRewrite: (path) => path.replace("/api", ""),
})
);
app.use(express.static(__dirname+'/static')) app.get('/person',(req,res)=>{
res.send({
name:'tom',
age:18
})
}) app.listen(5005,(err)=>{
if(!err) console.log('服务器启动成功了')
})
6.在终端运行node .\server.js开启服务器,然后浏览器输入localhost:5005打开项目
项目打包后配置到node服务器的更多相关文章
- vue项目打包后,自由修改配置如接口地址等
背景描述: 项目打包后,如果想更换接口域名或者项目名称,就需要再次打包.但是这样子操作有点耗费时间.如果把这些配置写到一个文件中,然后在index.html文件中引入使用,这样子会大大提高工资效率,节 ...
- vue+webpack项目打包后背景图片加载不出来问题解决
在做VUE +的WebPack脚手架项目打包完成后,在IIS服务器上运行发现项目中的背景图片加载不出来检查项目代码发现是因为CSS文件中,背景图片引用的路径问题;后来通过修改配置文件,问题终于解决了, ...
- vue项目打包文件配置(vue-clli3)
练手项目完结打包的时候遇到一些问题,特此记录 先贴我的vue.config.js文件的代码(vue-cli3构建的项目默认是没有此文件的,需手动添加)更多详细配置参考官方配置文档,我的项目不大不小,这 ...
- vue项目打包后想发布在apache www/vue 目录下
使用的是vue-element-admin做示例,可以参考Vue项目根据不同运行环境打包项目,其他项目应该大同小异. 使用vue-router的browserHistory模式,配置mode: 'hi ...
- vue项目打包后运行报错400如何解决
昨天一个Vue项目打包后,今天测试,发现无论localhost还是服务器上都运行不了,报错如下: Failed to load resource: the server responded with ...
- react项目打包后点击index.html页面出现空白
当本地打包后的文件,直接通过文件路径访问,出现空白或者,提示打包后的build内的js,css文件路径错误,有以下两种方式 方式一(无网络限制的情况下使用): 1.全局安装serve启动本地服务: n ...
- C#项目打包后安装的桌面快捷方式图标怎么设置成自己想要的图标
#项目打包后安装的桌面快捷方式图标怎么设置成自己想要的图标 2012-08-25 09:11匿名 | 浏览 3286 次 C#编程 C#项目用vs2005自带的工具打包后安装的桌面快捷方式图标怎么设 ...
- SpringBoot 项目打包后获取不到resource下资源的解决
SpringBoot 项目打包后获取不到resource下资源的解决 在项目中有几个文件需要下载,然后不想暴露真实路径,又没有CDN,便决定使用接口的方式来获取文件.最初的时候使用了传统的方法来获取文 ...
- vue项目打包后资源相对引用路径的和背景图片路径问题
vue项目中若要使用相对路径来获得相应静态资源,需要修改以下内容来确保项目打包后能正常运行. 1.修改config => index.js => build => assetsPub ...
- vue项目打包后的文件如何在本地访问
你是不是一直存在个困惑?vue项目build出来的dist文件夹下index.html直接点开始控制台一顿报错.今天咱就给他治服. 解决方案就是本地启动一个node服务.详细步骤如下: 创建项目 np ...
随机推荐
- vue几种插槽的使用方法
参考文档:https://blog.csdn.net/weixin_49217200/article/details/118496525 参考文档:https://blog.csdn.net/ct52 ...
- Rust for Rustaceans: Idomatic Programming for Experienced Developers Chap.2 Types
翻译的内容如果有不理解的地方或者是其他的差错,欢迎后台回复讨论. 类型在内存中的表示 Rust中的每一个值都有自己的类型(Type).在这一章中,我们将会看到Rust中的类型服务于许多不同的目的,但其 ...
- [picoCTF]Insp3ct0r write up
根据提示,需要检查浏览器上的Web代码(动手翻译一下啦) (漫不经心的瞅瞅页面,curl+UUUUUUU(一只U就行)一下下,微微瞄一瞄,where is flag? fn+f12(或其它)打开源代码 ...
- spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...
- 使用VSCode调试C#时,Console.ReadLine()弹出命令框调试
原文链接:https://blog.csdn.net/qq_29503199/article/details/88351498 要在调试时读取输入,可以在 launch.json 中使用配置中的 ...
- Fiddler一些用法学习记录
最近项目中用Fiddler较多,只会之前掌握的一些最简单的用法显得有点不太够.记录一下学习到的新用法. 一.需要mock.打开AutoResponder,Add Rule,填上需要mock的网址,需要 ...
- 使用 Agora 为Android APP添加视频直播
add-live-streaming-to-your-android-app-using-agora-featured1024×512 121 KB 视频互动直播是当前比较热门的玩法,我们经常见到有P ...
- Centos 6 部署PPTP服务
前言:PPTP使用一个TCP连接对隧道进行维护,使用通用路由封装(GRE)技术把数据封装成PPP数据桢通过隧道传送.可以对封装PPP桢中的负载数据进行加密或压缩. 注意:PPTP协议已经被IOS系统所 ...
- Error:(x,x) java: 程序包com.xxx.xxx不存在
[问题描述]:项目为SpringBoot 项目多个 module依赖,对子模块进行 compile/install 时出现了依赖的类(此类是自己写的类)不存在.
- 在Vue中发起axios请求成功,却被catch捕捉返回Network Error
前端发起请求成功,后台接收处理返回,却被axios的catch捕获,没有走then函数. 最后添加了headers配置成功解决,如上,附上axios接口配置中文文档:axios中文文档|axios中文 ...