最近写了一个项目 需要在线展示pdf 实现方法是下载该插件并解压放到 static文件夹中 地址:http://mozilla.github.io/pdf.js/

我在项目中使用iframe嵌套的方式 根据后台传过来的pdf地址显示

<iframeid="previewPdf":src="pdfHtmlURL+'?file=' + baseUrl+'/'+pdfPath"height="560"width="100%"v-if="pdfPath"
></iframe>

代码所示

data中代码如图

使用this.pdfHtmlURL 是因为初始化app 在Vue原型上添加了

pdfHtmlURL指的是 你的插件viewer.html地址
baseUrl 指的是 你的接口地址
pdfPath指的是文件路径地址
其中 pdfHtmlURL ,baseUrl 在static下新建config.json 如图


baseUrl 使用 /api 用的代理 可自行百度
pdfHtmlURL 之所以配置是因为当打包项目放到tomcat下面的时候 因为在要在webapps下新建文件夹 将打包后文件放进去 会出现访问不到插件的viewer.html 需要将地址改为相对路径 加一个点 就可以访问到了
“./static/pdf/web/viewer.html”


{"baseURL":"http://192.168.11.101:8080","pdfHtmlURL":"./static/pdf/web/viewer.html"
}

那这两个变量肯定在初始化的时候就会被赋值 我放到了Vue的原型上 在main.js中设置这两个地址
代码如下

import axios from 'axios'
var date = new Date();
var timer = date.getTime().toString();
// /* eslint-disable no-new */
axios.get("/static/config.json?"+timer).then(res=>{  //如果是打包 需将地址改为/wskj/static/config.jsonVue.prototype.pdfHtmlURL = res.data.pdfHtmlURL;Vue.prototype.baseURL = res.data.baseURL;axios.defaults.baseURL = res.data.baseURL;new Vue({el: '#app',router,store,components: { App },template: '<App/>'})
})

注意获取config.json的时候如果是本地开发 使用“/static/config.json”
如果是需要打包上线 则需要把地址改为“/wskj/static/config.json”
“wskj” 指的是 tomcat webapps下新建的文件夹 使用根目录可以访问到
路由那边 加了默认地址 base
如图

可以看到两个名字一致 需要统一

这样 操作 项目修改接口地址可直接在config.json中修改
切记 如果是本地开发 pdfHtmlURL 是绝对路径“/static/pdf/web/viewer.html”
如果是线上 使用相对路径 “./static/pdf/web/viewer.html”

如果上线之后 pdf.js 报错请把viewer.js 1900行注释

不明白留言

经过一段时间的学习 可以将代码简化 可以根据是否是生产还是开发环境绑定 接口地址和pdf地址

let url = (process.env.NODE_ENV =="production") ? '/wskj/static/config.json?' :'/static/config.json?' //获取接口的json
let pdfHtmlURL = (process.env.NODE_ENV =="production") ? './static/pdf/web/viewer.html' :'/static/pdf/web/viewer.html' //获取pdf地址
axios.get(url).then(res => { Vue.prototype.pdfHtmlURL = pdfHtmlURL;Vue.prototype.baseURL = res.data.baseURL;Vue.prototype.$is_disabled = is_disabled;//判断按钮是否可用axios.defaults.baseURL = res.data.baseURL;new Vue({el: '#app',router,store,components: { App },template: '<App/>'})
})

这杨可以 当打包的时候不需要手动在改地址了

vue中使用pdf.js插件打包后不显示插件及打包后动态修改接口地址相关推荐

  1. Vue项目中利用pdf.js实现pdf内容滑选文字展示与搜索功能

    Vue项目中利用pdf.js实现pdf内容滑选文字展示与搜索功能 需求:在pdf中鼠标滑动选中一段文字,将选中文字展示到input框中(pdf在iframe中) 完成效果: 关于pdf的引用:我是直接 ...

  2. vue中通过monment.js插件来将时间戳转换为常用的时间格式

    vue中通过monment.js插件来将时间戳转换为常用的时间格式 在项目中很多时候需要展示时间信息,我们一般都是用时间戳来传输时间信息,但是我们在页面展示的话是我们想要的常见格式,比如:2021-4 ...

  3. php vue pdf预览,Vue项目使用pdf.js

    前段时间有个支持在线学习功能的项目,有需要在线预览pdf格式课件的功能,我就想在线预览pdf多简单,因为大部分浏览器都支持打开pdf文件,所以直接放个iframe然后src是pdf文件的地址不就行了吗 ...

  4. vue中config/index.js:配置的详细理解

    当我们需要和后台分离部署的时候,必须配置config/index.js: 用vue-cli 自动构建的目录里面  (环境变量及其基本变量的配置) 1 2 3 4 5 6 7 8 9 10 11 12 ...

  5. vue里使用pdf.js实现pdf文件的预览功能

    引言:经过上一篇文章的测试,发现了以下问题: 兼容性不好 不适用多语言场景(不能共用一套) 会出现跨域问题 难于监控阅读状态 不能控制下载状态 在基于vue开发的移动项目中,如果预览的pdf数量不是很 ...

  6. vue 中展示PDF内容

    vue 中展示PDF内容 不久前有个需要改的需求,以前是直接根据链接让用户下载对应pdf文件来查看,最主要是给用户查看,然而这种并不是很安全的,其他用户可以进行下载或者使用pdf链接分享给其他人,所以 ...

  7. vue打包后获取不到数据_vue 打包后,如何修改接口地址?

    bug收集:专门解决与收集bug的网站 网址:www.bugshouji.com 01背景 在 vue 项目中,我们可以通过不同的环境,访问不同的服务器. 虽然可以使用环境的切换,但是在打包成html ...

  8. vue项目打包后修改接口地址

    vue项目打包后修改接口地址 我们在做vue项目时,总会遇到开发时用的测试地址和项目上线时用到的接口地址不同,再就是项目上线后,后期需要更改接口地址的情况.然而,如果没有一个配置文件,后期更换起来就只 ...

  9. 如何在 Vue 中使用 Chart.js - 手把手教你搭可视化数据图表

    本文首发:<如何在 Vue 中使用 Chart.js - 手把手教你搭可视化数据图表> 使用 Chart.js 在 Vue 搭建的后台管理工具里添加炫酷的图表,是所有数据展示类后台必备的功 ...

最新文章

  1. s2sh集成dataSource配置无效的问题 -Access denied for user 'sa'@'localhost'
  2. Android listview与adapter用法
  3. 引用管理器没有程序集_Microsoft弃用远程桌面连接管理器
  4. Git科普文,Git基本原理各种骚操作
  5. 基于日志的交换机故障预测
  6. CodeForces - 589A
  7. Java 序列化Serializable详解
  8. php更新记录没有获取值,php – 节点更新:获取旧值
  9. 关于SimpleDateFormat的一些使用及性能数据
  10. imx6q LINUX 启动时间优化
  11. Android开发——项目实例(一)迷你背单词软件
  12. Matlab实现分组检测
  13. 像素三国志在线html5小游戏,激萌三国志H5
  14. oracle汉字排序
  15. 配置MySQL环境、安装MySQL、解决mysql无法修改密码问题
  16. 如何展示实时音视频通话时正在说话用户的音浪
  17. Java+MySQL基于SSM的二手玩具交换网站
  18. [数值计算-16]:最小二乘法的求解1 - 一元二次方程解析法求解
  19. Codeforces Round #777 (Div. 2) ABCD题解
  20. 浅谈SPICE原理及应用

热门文章

  1. 服务器ip账号密码怎么查,网站服务器的ip地址怎么查_网站服务器的维护
  2. day15 algo82、83、85、91、92、93、94
  3. 《如何管理软件企业》
  4. 我与SM不得不说的故事(一)
  5. 基于R语言的seasonal包使用手册_05.final\original\trend\irregular\residuals
  6. 顶尖高校【中国科学院大学】公布3届毕业生深造及就业情况!
  7. 加速扩张中的喜茶、奈雪们,为其它品牌提供了怎样的私域启示?
  8. 有多少人失去了仰望星空的能力
  9. 一文看懂二层接口、三层接口、PVID及VLANIF
  10. linux 修改微秒时间,linux 获取当前时间到微秒