博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
巧设publicPath,优雅适配生产环境要求
阅读量:5903 次
发布时间:2019-06-19

本文共 770 字,大约阅读时间需要 2 分钟。

使用vue或者angular 2的同学肯定离不开webpack,vue-cli等配置构建工具的出现,更是解放了开发者不少的负担。


1. vue-cli对静态资源的默认行为

vue-cli默认将生产环境的静态资源放在dist目录下,html加载js、css或者css加载png或者svg等静态资源时通常以dist目录为根目录,使用绝对路径进行加载。


2. 实际遇到的问题

但是大多数app静态资源并不会直接放到服务器根目录(以www.baidu.com为例),而是放在二级或者三级目录下,如www.baidu.com/yunpan,这样上面默认的配置将会导致加载不到对应静态资源,打开Chrome Devtools会发现,下载js、css、png的url如下:

这些请求通通报错404 Not found

多动手试一下,发现以下url的响应会是200 OK,得到实际需要的静态资源

3. 原因以及解决方案

url-loader根据options的name属性将静态资源放置到对应目录,同时对html或者css引用静态资源的url进行修改,这也是vue-loader推荐大家自由放置静态资源而不用关心生产环境url指向的原因。
但是遇到app部署到网站二级目录的特殊场景,就自然而然地出现上面的问题。有人推荐修改/config/index.js中的config.build.assetsPublicPath为'',尝试后发现只能修正html引用js、css的问题,不能修正css引用image、iconfont等静态资源的问题。

实际上,你无须改变config.build.assetsPublicPath,只需要在/build/webpack.prod.conf.js中output增加publicPath,将其置为'/yunpan/'即可。

转载地址:http://bfupx.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
CDN相关
查看>>
Tomcat的设置4——Tomcat的体系结构与设置基于端口号的虚拟主机
查看>>
三种判断端口存活的方法和链接200的判断方法
查看>>
我的友情链接
查看>>
ftp协议基础
查看>>
顺时针打印矩阵
查看>>
JAXB
查看>>
访问共享经常中断
查看>>
人生的交易
查看>>
MySql
查看>>
算法分析与设计——贪心法实验报告
查看>>
js时间戳与日期格式的相互转换
查看>>
POJ - 1062 昂贵的聘礼(Dijkstra)
查看>>
Java多态和动态绑定是如何实现的
查看>>
sql server 下载安装标记
查看>>
Android学习6—单元测试的使用
查看>>
js运算符(运算符的结合性)
查看>>
最长上升子序列问题
查看>>
C#中的析构函数
查看>>