express整合webpack的打包文件dist
对于我来说,第一次接触前后端整合问题的小白,刚开始是一脸懵逼,这个问题整整坑了我一个晚上加一个早上,现在写出来总结;
前端开发:vue-cli+webpack;
后台开发:nodejs框架express;
前端开发之后,使用localhost能正确访问vue-cli自带的服务器。
而在后台方面,一开始我是直接在expres的views和public上开发前端页面,因此在一些配置方面都是上个项目的,现在整合新项目,让我有点方。
过程:
1、进入前端目录,npm run build 命令直接将前端项目打包成dist文件;
2、我是直接将dist文件复制到服务器的根目录;
3、更改routes文件夹下的index文件,将路由访问'/'改成渲染dist文件下的index.html;
结果:访问服务器,静态资源404;
二次改进过程:(经过大量的查资料)
1、找到vue-cli项目下的config文件夹下的index.js文件,找到build部分的assetsPublicPath;(接下来会说一下assetsPublicPath的作用)
2、将assetsPublicPath更改为'http://localhost:5777/dist';
3、整合到express服务器上
结果:
src="http://localhost:5777/dist/static/js/manifest.0d43cb9e3c7036b97742.js"
这个时候我就懵逼了,这不就是正确的路径吗?
可是还是404,这就尴尬了。
乱入一下assetsPublicPath知识点:
看了一下官方文档,蹩脚英语的我又懵逼了,我说一下大致意思,assetsPublicPath可以指定输出文件的公共地址在浏览器的引用。
首先,webpack在打包的时候已经为你写好了dist文件中静态资源的引用,也就是'./static/js|css/***',也就是客户端访问dist可以加载静态资源。
但当dist部署到express上的时候,访问服务器时候,静态资源的url为:assetsPublicPath + './static/js | css/ ***';
也就是上面代码所表示的。
可为什么还是404呢?这就关乎到express的问题了。
在app.js的配置中,有这样一行代码:
app.use(express.static(path.join(__dirname, '/dist'))); (默认为/public)
这句话的意思是设置express访问静态资源的目录,也就是express需要访问静态文件时都是从public入口。
所以第二种情况的地址实际上访问的是 src="http://localhost:5777/dist/dist/static/js/manifest.0d43cb9e3c7036b97742.js"
也就是assetsPublicPath中的localhost:5777和express.static中的dist重复了。
总结来说:只需要将assetsPublicPath改为 'localhost:5777' + express.static的 '/dist' + 前端默认路径 '/static/js |css /***';
express整合webpack的打包文件dist的更多相关文章
- 使用node-static运行vue打包文件dist
vue打包后的文件dist,如果想上线之前查看效果,方法如下: npm install -g node-static 进入到dist文件夹,运行static命令 打开上面地址
- 成功解决react+webpack打包文件过大的问题
最近在学习并使用webpack+react+antd写了一个小项目,也可以说是demo,待全部开发完成后发现webpack的打包文件足足有将近13.3MB,快吓死宝宝了,经过连续几天的学习,和调试最后 ...
- webpack打包文件
npm init -y//生成package.json npm install webpack webpack-cli --save-dev//安装webpack和webpack-cli根据入口文件. ...
- 规范开发目录 及 webpack多环境打包文件配置
规范开发目录 普通项目 开发目录: ├── project-name ├── README.md ├── .gitignore ├── assets ├── ├── js ├── ├── css ├─ ...
- webpack单独打包一个less文件
需要将btn.less文件用webpack打包后,放到项目中.在网上百度了各种,遇到了很多问题,现在我将整个步骤整理如下: 1.建一个空的文件夹,命名为init_webpack,在该文件夹下运行: 这 ...
- webpack配置:less/sass文件打包和分离、自动处理css前缀、消除未使用的css及完整的webpack.config.js文件
一.less文件打包和分离 1.要使用less,首先使用npm安装less服务:还需要安装Less-loader用来打包使用. npm install less --save-dev npm inst ...
- 3.使用webpack配置文件webpack.confg.js配置打包文件的入口和出口
在项目根目录下新建webpack.config.js文件 webpack.config.js文件配置如下: // Node的路径操作使用的是path模块 const path=require('pat ...
- webpac4k运行webpack .\src\main.js .\dist\bundle.js打包出错
打包的命令格式:webpack 要打包的文件的路径 打包好的输出文件的路径 运行webpack .\src\main.js .\dist\bundle.js 提示错误,错误信息如下: WARNING ...
- webpack提取图片文件打包压缩
抽离图片文件打包到指定路径下 压缩抽离的图片资源 配置生成html中的图片路径 一.准备测试环境 //工作区间 src//文件夹 index.js//入口文件 index.css//样式文件 inde ...
随机推荐
- Numpy入门 - 数组基本运算
本节主要讲解numpy数组的基本运算,包括两数组相加.相减.相乘和相除. 一.两数组相加add import numpy as np arr1 = np.array([[1, 2, 3], [4, 5 ...
- 友元函数 C++
#include<iostream> #include<vector> using namespace std; class Text{ public: Text():a(){ ...
- python中的“.T”操作
其实就是对一个矩阵的转置 看代码: a array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) a.T array([[1, 4, 7], [2, 5, 8], [3, 6, ...
- 自己动手实现mvc框架
用过springmvc的可能都知道,要集成springmvc需要在web.xml中加入一个跟随web容器启动的DispatcherServlet,然后由该servlet初始化一些东西,然后所有的web ...
- 分布式监控系统Zabbix3.2监控数据库的连接数
在 分布式监控系统Zabbix3.2跳坑指南 和 分布式监控系统Zabbix3.2给异常添加邮件报警 已经介绍了如何安装以及报警.此篇通过介绍监控数据库的3306端口连接数来了解如何监控其它端口和配置 ...
- 继webpack后又一打包神器Parcel
前言: 在继grunt.gulp实现自动化构建之后,webpack又引领前端打包潮流,众所周知的是,vue-cli的脚手架就是基于webpack进行项目打包的.而webpack还在上升的势头的时候,又 ...
- js 匹配2个字符串相似度
strSimilarity2Number: function (s, t) { var n = s.length, m = t.length, d = []; var i, j, s_i, t_j, ...
- let 和 const
let命令 1.let命令只在所在的代码快内有效 { let a = 'hello world' console.log(a) //hello world } console.log(a) //Unc ...
- 哈希表(散列)HashTable实现
近期刷Leetcode发现凡是找字符串中反复字符或者数组中找反复数据的时候就不知道从何下手了. 所以决定学习一下哈希表解题.哈希表的原理主要是解决分类问题,hash表是介于链表和二叉树之间的一种中间结 ...
- 设置应用栏(Setting Up the App Bar)
今天星期五,刚从体育场打完球回来,洗了洗脚.明天还要继续上班,也是非常艰难.近期我的小腰有点不舒服,就早点睡觉歇息. 所以今天就简单的翻译一篇Android官方站点上的文章,我会加一些补充. 原文地址 ...