vue本地打开build后生成的dist文件夹index.html问题


Posted in Javascript onSeptember 04, 2019

1.问题描述:

npm run build 在dist 文件生成了 index 和 static 文件夹,为什么本地打开不了,给后端就能打开?

如何才能像访问 npm run dev 的地址那样访问?

2.种简单方法

2.1 修改配置在本地访问

更改一些路径参数后,然后再次运行npm run build 就可以在本地打开index.html

改哪里?

config/index.js文件

build: {
 assetsPublicPath: '/'
}

改成

build: {
 assetsPublicPath: './'
}

修改后再次运行 npm run build

双击 index.html 即可

2.2 通过在dist 目录中起服务访问

step1:

在dist 文件中添加 server.js

var express = require('express');
 var app = express();
 const hostname = 'localhost';
 const port = 8080;
 app.use(express.static('./'));
 app.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}`);
 });

step 2:

在dist 路径下,npm install express

step 3:

node server

3.其他:

3.1 本地访问不足

如果ajax请求的数据是通过访问本地文件伪造的,那么会报跨域错误

不支持跨域读取本地data

本地访问路径如:

file:///Users/Downloads/vue-travel-master/dist/index.html

3.2 生产环境不支持proxyTable

config/index.js 中,只有开发环境dev中配置了proxyTable,支持访问代理路径

但是在 build 中配置无效,不支持代理地址

比如我在开发环境中请求数据

axios.get('/api/index.json?city=' + this.city)

开发环境的proxyTable:

proxyTable: {
 '/api': {
 target: 'http://localhost:8080',
 changeOrigin:true,//允许跨域
 pathRewrite: {
  '^/api': '/static/mock'
 }
 }

访问路径会替换成  http://localhost:8080/static/mock/index.json

但是生产环境不支持这样,路径要写全: 

axios.get('/static/mock/index.json?city=' + this.city)

这样在dist目录下 node server 就可以访问了和 npm run dev 的效果是一模一样的!

起服务访问地址:

http://localhost:8080/static/js/app.5115f466b0f6ef56da51.js

3.3 express 配置

var express = require('express'); 
var app = express(); 
const hostname = 'localhost';
const port = 8080;
//Express 提供了内置的中间件 express.static 来设置静态文件
app.use(express.static('./'));

app.listen(port, hostname, () => {
 console.log(`Server running at http://${hostname}:${port}`);
});
express.static('./')

express 会在静态资源目录下查找文件,即server.js的上层路径dist目录,现在你可以加载dist 目录下的文件了,如:

http://localhost :8080/static/mock/index.json?city=%E4%B8%8A%E6%B5%B7

访问路径为:

——dist 
 ——static 
  ——css
  ——js
  ——mock
   ——a.json
 ——index.html 
 ——server.js

4. 代码

4.1 可运行代码链接

可下载运行试试

总结

以上所述是小编给大家介绍的vue本地打开build后生成的dist文件夹index.html问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
Jan 15 Javascript
基于jquery的一个简单的脚本验证插件
Apr 05 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
Feb 13 Javascript
多种方法实现360浏览器下禁止自动填写用户名密码
Jun 16 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
Aug 25 Javascript
原生JavaScript实现的简单放大镜效果示例
Feb 07 Javascript
json对象及数组键值的深度大小写转换问题详解
Mar 30 Javascript
webpack4简单入门实例
Sep 06 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
Jan 14 Javascript
js利用iframe实现选项卡效果
Aug 09 Javascript
vue-router懒加载的3种方式汇总
Feb 28 Vue.js
三种方式清除vue路由跳转router-link的历史记录
Apr 10 Vue.js
简单谈谈javascript高级特性
Sep 04 #Javascript
在layui中使用form表单监听ajax异步验证注册的实例
Sep 03 #Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
Sep 03 #Javascript
mui js控制开关状态、修改switch开关的值方法
Sep 03 #Javascript
Layui给switch添加响应事件的例子
Sep 03 #Javascript
layui--js控制switch的切换方法
Sep 03 #Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
Sep 03 #Javascript
You might like
解决PHP超大文件下载,断点续传下载的方法详解
2013/06/06 PHP
php生成N个不重复的随机数实例
2013/11/12 PHP
destoon二次开发模板及调用语法汇总
2014/06/21 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
2016/05/06 PHP
YII2 实现多语言配置的方法分享
2017/01/11 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
理解JAVASCRIPT中hasOwnProperty()的作用
2013/06/05 Javascript
浅析XMLHttpRequest的缓存问题
2013/12/13 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
Jquery响应回车键直接提交表单操作代码
2014/07/25 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
微信小程序 Storage API实例详解
2016/10/02 Javascript
Seajs是什么及sea.js 由来,特点以及优势
2016/10/13 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
浅谈Node模块系统及其模式
2017/11/17 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
PyQt4实现下拉菜单可供选择并打印出来
2018/04/20 Python
Python3 批量扫描端口的例子
2019/07/25 Python
初学者学习Python好还是Java好
2020/05/26 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
2021/02/20 Python
详解使用CSS3的@media来编写响应式的页面
2017/11/01 HTML / CSS
美国内衣品牌:Leonisa
2016/08/14 全球购物
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
澳大利亚墨水站Ink Station:墨水和碳粉打印机墨盒
2019/03/24 全球购物
小米俄罗斯授权商店:Xiaomi俄罗斯
2019/12/08 全球购物
素食餐饮项目创业计划书
2014/02/02 职场文书
渔夫的故事教学反思
2014/02/14 职场文书
员工教育培训协议书
2014/09/27 职场文书
廉政承诺书
2015/01/19 职场文书
2015年七一建党节慰问信
2015/03/23 职场文书
优秀毕业生主要事迹材料
2015/11/04 职场文书