百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

TaskBuilder客户端请求前端静态文件的流程

myzbx 2025-02-03 14:11 15 浏览

TaskBuilder客户端请求前端静态文件的流程

任擎服务器支持支持以下三种静态文件:

4.1.1纯静态文件

纯静态文件是指存放在tasgine\web目录或其子目录下,可以直接在浏览器里加载或显示的文件,包括HTML文件、CSS文件、前端JS文件、图片、音视频文件等,客户端需要访问这种文件时,向任擎服务器发起请求,并提供这些文件的URL地址,任擎就会直接读取这些文件的内容,然后返回给客户端,客户端再加载和显示。

例如任擎服务器的ip为192.168.1.100,监听的网络端口为8001,如果要访问该服务器上的tasgine\web\app\demo\index.html文件,则URL地址为:

http://192.168.1.100:8001/app/demo/index.html

从上面的路径可知,在URL路径里,只需要保留文件实际路径的tasgine\web后面的路径即可,但要把斜杠 \ 换成反斜杠 / ,任擎默认会从tasgine\web目录开始查找静态文件。

4.1.2 tfp文件

扩展名为.tfp的文件是用TaskBuilder设计制作的前端页面文件,文件的内容为JSON格式,客户端无法直接解析执行这种格式,需要由任擎服务器先将其编译成HTML文件,然后再发送给客户端,客户端才能加载显示,整个请求响应的流程如下图所示:

从上图可知,当有客户端访问tfp页面时,任擎会判断在tasgine\web\dist目录及其子目录内是否已经有该文件编译后的HTML文件,如果已经存在,而且创建时间晚于tfp文件的最后修改时间,则直接将该HTML文件的内容返回给客户端。否则,任擎会对该tfp文件进行编译,生成对应的HTML代码,并将该页面里各种组件所需的js和css文件的代码都打包压缩后合并到该HTML文件中,然后将该文件的内容保存到tasgine\web\dist对应的文件夹中,并返回给客户端,客户端再进行加载和显示。

4.1.3附件

如果是通过tfp的文件上传或图片上传组件上传的附件文档,则不能通过在URL里使用文件路径的方式来直接访问,因为为了保障服务器安全和防止信息泄露,所有附件都是保存在tasgine\files\组织代码\应用代码\上传年月\ 这样的目录里,而不是放在tasgine\web目录里,而且,文件名都变成了 附件代码.file 的形式。附件代码是在上传附件时自动生成的一个32位的UUID()字符串,并且和附件的其他信息一起保存到了sys_app_attach表中,包括附件名称、类型、大小、保存路径、应用代码、应用数据记录编号、上传人id、上传时间等。

如果要下载附件,请采用以下形式的URL:

http://服务器ip:服务器端口/Download?fileCode=附件代码

当客户端给任擎服务器发送上述格式的URL请求时,任擎会根据URL里的附件代码去sys_app_attach表中查询附件的信息,然后再根据其保存路径读取该附件的实际内容,然后发送给客户端。如果没有找到匹配的附件信息,则返回错误。

如果附件是图片,而且要在浏览器里直接显示,而不是下载,则可以使用下述URL:

http://服务器ip:服务器端口/Download?fileCode=附件代码&showImage=true

相关推荐

MORROR ART:毫无音质可言,真的只是好看而已...

今天早上我在微博上发了一条短视频,内容是某款网红音箱正在放声歌唱——这玩意就是此前曾经在网上挺火的所谓“悬浮歌词音箱”。这款产品是我同事收到的礼品,但她嫌在家里放着没用,所以拿到公司里做我们的拍摄道具...

「JS优化篇」你的 if - else 代码肯定没我写的好

作者:小生方勤转发链接:https://mp.weixin.qq.com/s/JzOQ_OwAYoP5Ic1VBtCZNA前言最近部门在对以往的代码做一些优化,我在代码中看到一连串的if(){}el...

细聊微内核架构在前端的应用「干货」

作者:semlinker转发链接:https://mp.weixin.qq.com/s/ywc98dS4TVB4t3L2tIyk8g一、微内核架构简介1.1微内核的概念微内核架构(Microke...

ThreeJS 入门教程(一) 是选择桌面的固守还是云原生?

导读:最近我购置了一台新的电脑,硬盘空间只有1T。我很担心这个电脑还能用多久。性能限制或者空间的限制,都使得在未来3-5年内,这个电脑会被淘汰。但是,基于云APP的使用,老的电脑是足够了,而且,我们也...

推荐三款正则可视化工具「JS篇」(正则在线调试)

作者:代码先森转发链接:https://mp.weixin.qq.com/s/rw29yKBwti5sIsx2GKG9pw前言最近老王对可视化非常着迷。例如,算法可视化、正则可视化、Vue数据劫持可...

Javascript 多线程编程的前世今生

作者:jolamjiang腾讯技术工程转发链接:https://mp.weixin.qq.com/s/87C9GAFb0Y_i5iPbIL5Hzg为什么要多线程编程大家看到文章的标题《Javasc...

Pug 3.0.0正式发布,不再支持 Node.js 6/8

作者:李俊辰前端之巅转发链接:https://mp.weixin.qq.com/s/q-49Gf-SFijeu7d2MqztIQ前言近日,Pug3.0.0正式发布,Pug原名Jade,是由...

36个工作中常用的JavaScript函数片段「值得收藏」

作者:Eno_Yao转发链接:https://segmentfault.com/a/1190000022623676前言如果文章和笔记能带您一丝帮助或者启发,请不要吝啬你的赞和收藏,你的肯定是我前进的...

深入JavaScript教你内存泄漏如何防范

作者:大道至简转发链接:https://mp.weixin.qq.com/s/0w6aWwpR3MAJnmyLwDnAzA前言一般情况下,忽视内存管理不会对传统的网页产生显著的后果。这是因为,用户刷新...

由浅入深,66条JavaScript面试知识点(七)

作者:JakeZhang转发链接:https://juejin.im/post/5ef8377f6fb9a07e693a6061目录由浅入深,66条JavaScript面试知识点(一)由浅入深,66...

用STM32做了个电子秤,成本仅两位数,精度高!解析一下原理

俗话说得好!人在胖,秤在看!所以,我想DIY一个精度高的体重秤!并希望它不只能称体重:还能像这样称克重(可设置KG,G,最低可称100克)……这样一来,做甜品的时候,还能拿来应应急。保姆级教程,记录在...

前端开发需要了解常用7种JavaScript设计模式

作者|Deven译者|王强策划|小智转发链接:https://mp.weixin.qq.com/s/Lw4D7bfUSw_kPoJMD6W8gg前言JavaScript中的设计模式指的是...

毛姆的一个手法|王培军(毛姆作品简介)

鲁本斯画《海伦娜·芙尔曼肖像》钱锺书在《宋诗选注》文同小传中说:“具体的把当前风物比拟为某种画法或某某大画家的名作”,是“从文同正式起头”。如钱先生所举的:“峰峦李成似,涧谷范宽能”,“独坐水轩人不到...

欣赏 | 朝戈:我渴望找到直达心灵的永恒

朋友,通过艺术让我们共同感知世界的永恒与不朽。——朝戈橙色的人物117X71cm布面油画2003包与陈185cm×103cm2007年白色80cm×40cm2009年光布面油画-Light-Oilo...

Web页面如此耗电!到了某种程度,会是大损失

现在用户上网大多使用移动设备或者笔记本电脑。对这两者来说,电池寿命都很重要。在这篇文章里,我们将讨论影响电池寿命的因素,以及作为一个web开发者,我们如何让网页耗电更少,以便用户有更多时间来关注我们的...